matlab把图像缩小四倍
时间: 2023-08-23 20:37:03 浏览: 108
matlab实现图像缩放
要将图像缩小四倍,可以通过将原图像分成四个区域,然后分别取每个区域中像素点的平均值来生成新的像素点。以下是示例代码:
```matlab
% 读取图像
img = imread('example.jpg');
% 获取图像尺寸
[row, col, channel] = size(img);
% 计算缩小后的尺寸
new_row = floor(row/2);
new_col = floor(col/2);
% 创建空白图像
new_img = uint8(zeros(new_row, new_col, channel));
% 缩小操作
for i = 1:new_row
for j = 1:new_col
% 计算四个区域的起始和结束位置
start_row = (i-1)*2+1;
end_row = i*2;
start_col = (j-1)*2+1;
end_col = j*2;
% 取四个区域中像素点的平均值
new_img(i, j, :) = mean(mean(img(start_row:end_row, start_col:end_col, :)));
end
end
% 显示原图和缩小后的图
figure(1);
subplot(1, 2, 1);
imshow(img);
title('Original Image');
subplot(1, 2, 2);
imshow(new_img);
title('Shrinked Image');
```
该代码中,首先读取图像并获取其尺寸信息,然后计算缩小后的图像尺寸。接着创建一个空白图像,使用双层循环遍历每个缩小后的像素点,计算对应的四个区域的起始和结束位置,并取四个区域中像素点的平均值来生成新的像素点。最后显示原图和缩小后的图像。
需要注意的是,在进行像素点取平均值时,需要使用两个嵌套的 `mean` 函数,分别计算每个通道的平均值和所有通道的平均值。
阅读全文