用删除行和列的方法用matlab把图像缩小四倍
时间: 2024-03-13 18:04:04 浏览: 66
通过删除行和列的方法,可以将图像缩小为原来的四分之一。具体步骤如下:
1. 读取图像并获取其尺寸信息。
2. 计算缩小后的尺寸,即将原来的行和列分别缩小为原来的一半。
3. 使用双层循环遍历每个缩小后的像素点,将原图像中对应的四个像素点的颜色值取平均值,然后将结果赋值给新图像中的像素点。
以下是示例代码:
```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
% 计算四个像素点的位置
row_idx = (i-1)*2+1 : i*2;
col_idx = (j-1)*2+1 : j*2;
% 取四个像素点的颜色值的平均值
new_img(i, j, :) = mean(mean(img(row_idx, col_idx, :)));
end
end
% 显示原图和缩小后的图
figure(1);
subplot(1, 2, 1);
imshow(img);
title('Original Image');
subplot(1, 2, 2);
imshow(new_img);
title('Shrinked Image');
```
在上述代码中,我们使用 `floor` 函数计算了缩小后的图像尺寸,然后使用双层循环遍历了所有缩小后的像素点。对于每个像素点,我们计算了对应的四个像素点的位置,然后使用 `mean` 函数计算了这四个像素点颜色值的平均值,并将结果赋值给新图像中的像素点。最后显示原图和缩小后的图像。
阅读全文