matlab降低照片的分辨率代码
时间: 2023-07-30 10:03:28 浏览: 118
matlab设置图片分辨率代码-Super-resolution:超分辨率
降低照片的分辨率是通过减少像素数量来实现的。以下是使用MATLAB编写的代码来降低照片的分辨率:
```matlab
% 读取图像
image = imread('input.jpg');
% 原始图像的尺寸
original_width = size(image, 2);
original_height = size(image, 1);
% 设置目标图像的新尺寸(降低分辨率)
new_width = original_width / 2;
new_height = original_height / 2;
% 创建目标图像的空矩阵
target_image = zeros(new_height, new_width, size(image, 3), class(image));
% 按照新尺寸遍历目标图像的像素,并从原始图像中取样
for i = 1:new_height
for j = 1:new_width
% 取出对应位置的原始图像像素
pixel = image(2*i-1:2*i, 2*j-1:2*j, :);
% 计算平均像素值
average_pixel = mean(mean(pixel));
% 将平均像素值赋给目标图像对应位置的像素
target_image(i, j, :) = average_pixel;
end
end
% 将目标图像保存为新的文件
imwrite(uint8(target_image), 'output.jpg');
```
这段代码首先读取名为"input.jpg"的图像,然后根据原始图像的尺寸计算目标图像的新尺寸。接下来,创建空矩阵用于存储目标图像,并通过遍历目标图像的每个像素位置,从原始图像中取样相应位置的像素。然后,计算取样图像的平均像素值,并将该值赋给目标图像对应位置的像素。最后,将目标图像保存为新文件"output.jpg"。
值得注意的是,上述代码中的分辨率降低因子为2,也就是将每个2x2的像素块替换为一个平均像素值。要改变分辨率降低的程度,可以调整分块大小或修改计算平均像素值的方法。
阅读全文