计算机图像处理实验报告
学院:信息学院
班级:电子信息工程
姓名:
学号:
实验内容:数字图像处理
1、应用MATLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换;
(1)、显示一副真彩RGB图像
代码:
I=imread('cartoon.jpg'); %读取彩色图像
>>imshow(I);
效果:
(2)、RGB转灰度图像
代码:
graycartoon=rgb2gray(I); %彩色图像转换为灰度图像
>> subplot(1,2,1);
>> subimage(I);
>> subplot(1,2,2);
>> subimage(graycartoon);
效果:
(3)、RGB转索引图像
代码:
[indcartoon,map]=rgb2ind(I,0.7);%彩色图像转换为索引图像
>> subplot(1,2,1);
>> subimage(I);
>> subplot(1,2,2);
>> subimage(indcartoon,map);
效果:
(4)、索引图像转RGB
代码:
I1=ind2rgb(indcartoon,map);%索引图像转换为彩色图像
>>subplot(1,2,1);
>>subimage(indcartoon,map);
>>subplot(1,2,2);
>>subimage(I1);
效果:
(5)、索引转灰度图像
代码:
i2gcartoon=ind2gray(indcartoon,map);%索引图像转换为灰度图像
>>subplot(1,2,1);
>>subimage(indcartoon,map);
>>subplot(1,2,2);
>>subimage(i2gcartoon);
效果:
(6)、灰度转索引图像
代码:
[g2icartoon,map]=gray2ind(graycartoon,64);%灰度转索引图像
>>subplot(1,2,1);
>>subimage(graycartoon);
>>subplot(1,2,2);
>>subimage(g2icartoon,map);
效果:
(7)、RGB转二值图像
代码:
r2bwcartoon=im2bw(I,0.5);
>>subplot(1,2,1);
>>subimage(I);
>>subplot(1,2,2);
>>subimage(r2bwcartoon);
效果:
(8)灰度转二值图像
代码:
g2bwcartoon=im2bw(graycartoon,0.5);
subplot(1,2,1);
>>subimage(graycartoon);
>>subplot(1,2,2);
>>subimage(g2bwcartoon);
效果:
(9)、索引转二值图像
代码:
[indcartoon,map]=rgb2ind(I,0.7);
>> subplot(1,2,1);
>> subimage(I);
>> subplot(1,2,2);
>> subimage(indcartoon,map);
>> i2bwcartoon=im2bw(indcartoon,map,0.7);
>>subplot(1,2,1);
>>subimage(indcartoon,map);
>>subplot(1,2,2);
>>subimage(i2bwcartoon);
效果:
2、应用MATLAB工具箱演示一幅图像的傅里叶变换、离散余弦变换,观察其频谱图。然后将它们进行逆变换,观察逆变换后的图像;
(1)傅里叶正变换
代码:
F=fft2(graycartoon);
>>subplot(1,2,1);
subimage(graycartoon);
>>subplot(1,2,2);
>>subimage(log(abs(F)),[3,10]);
效果:
(2)傅里叶反变换
代码:
IF=ifft2(F);
>>subplot(1,2,1);
>>subimage(log(abs(F)),[3,10]);
>>subplot(1,2,2);
subimage(uint8(IF));
效果:
(3)DCT变换
代码:
B=dct2(graycartoon);
>>subplot(1,2,1);
>>subimage(graycartoon);
>>subplot(1,2,2);
>>subimage(log(abs(B)),[3,5]);
效果:
(4)iDCT变换
代码:
iB=idct2(B);
>>sub