实验报告 MATLAB彩色图像读写

一、程序目的
作业1:定义一个函数SubSamp, 输入为彩色图像文件名,输出并显示尺寸减半的彩色图像(原始,水平翻转,垂直翻转,中心区域变红)。必须使用控制语句,在命令窗口成功调用!
作业2:定义一个函数RGB2BGR, 输入为彩色图像文件名,将彩色通道由RGB顺序转换为BGR顺序,输出并显示该彩色图像,并分别进行如下操作:水平翻转,垂直翻转,中心区域变红。必须使用控制语句,在命令窗口成功调用!
二、运行环境
Matlab平台,编写M程序实现。
三、程序代码
一:
function [imR,imG,imB,imF]=SubSamp(filename);
im=imread(filename);
imr=im(:,:,1);
img=im(:,:,2);
imb=im(:,:,3);
imf=cat(3,imr,img,imb);
for i=1:4
figure
switch i
case 1
img=imf(end????1,:????; 使图像垂直翻转
imshow(img);
case 2
imb=imf(:,end????1,:); 使图像水平翻转
imshow(imb);
case 3
imr=imf(1:2:end,1:2:end,:); 使图像尺寸减半
imshow(imr);
case 4
使图像中心区域100*100
[m,n,t]=size(imf);
imf(m/2-50:m/2+50,n/2-50:n/2+50,1)=255;
imf(m/2-50:m/2+50,n/2-50:n/2+50,2)=0;
imf(m/2-50:m/2+50,n/2-50:n/2+50,3)=0;
imshow(imf);
end
End

[imgr,imgg,imgb,imf] = SubSamp(‘lena.bmp’);

二:
function [imr,img,imb,imf]=RGB2BGR(filename)
im=imread(filename);
imr=im(:,:,1);
img=im(:,:,2);
imb=im(:,:,3);
imf=cat(3,imb,img,imr);
for i=1:4
figure
switch i
case 1
img=imf(end????1,:????; 使图像垂直翻转
imshow(img);
case 2
imb=imf(:,end????1,:); 使图像水平翻转
imshow(imb);
case 3
imr=imf(1:2:end,1:2:end,:); 使图像尺寸减半
imshow(imr);
case 4
使图像中心区域100*100变红
[m,n,t]=size(imf);
imf(m/2-50:m/2+50,n/2-50:n/2+50,1)=255;
imf(m/2-50:m/2+50,n/2-50:n/2+50,2)=0;
imf(m/2-50:m/2+50,n/2-50:n/2+50,3)=0;
imshow(imf);
end
end

[imgr,imgg,imgb,imf] = RGB2BGR(‘lena.bmp’);

四、运行结果
MATLAB彩色图像读写

五、实验总结
此次实验使我对于图像垂直翻转,使图像水平翻转,使图像尺寸减半,使图像中心区域100*100等方法了解并学习,进一步提高了对于matlab的使用以及对图像的各种操作的了解,提高实验经验。

相关文章:

  • 2021-11-08
  • 2021-11-28
  • 2022-02-02
  • 2021-12-30
  • 2021-12-28
  • 2021-12-10
  • 2022-01-07
猜你喜欢
  • 2021-11-19
  • 2022-12-23
  • 2021-07-14
  • 2021-12-14
  • 2021-11-10
  • 2021-06-19
  • 2021-06-16
相关资源
相似解决方案