定义一个函数SubSamp,输入为彩色图像文件名,输出并显示尺寸减半的彩色

图像(原始、水平翻转、垂直翻转、中心区域变红)。必须使用控制语句,在命令窗口成功调用!

因为彩色图像是3维的,黑白图像是2维的。如果我们在对图像尺寸减半时仍然使用

>> f=imread('e:\1.png');
>> f=f(1:2:end,1:2:end);
>> imshow(f);


就会发现出来三个并排排列的灰色图像

matlab作业 彩色图像读写实验_函数SubSamp

所以要在后面再加1维即可

全部代码如下

function [img1,img2,img3,img4]=SubSamp(filename);
img1=imread(filename);
for i=1:4
figure
switch i
case 1
img1=img1(1:2:end,1:2:end,:);%使图像尺寸减半
imshow(img1);
case 2
img2=img1(end:-1:1,:,:);%使图像水平翻转
imshow(img2);
case 3
img3=img1(:,end:-1:1,:);%使图像垂直翻转
imshow(img3);
case 4
%使图像中心区域100*100变红
[m,n,t]=size(img1);
img4=img1;
img4(m/2-50:m/2+50,n/2-50:n/2+50,1)=255;
img4(m/2-50:m/2+50,n/2-50:n/2+50,2)=0;
img4(m/2-50:m/2+50,n/2-50:n/2+50,3)=0;
imshow(img4);
end
end


运行结果

matlab作业 彩色图像读写实验_垂直翻转_02