当前位置:文档之家› 数字图像处理之彩色图像的处理

数字图像处理之彩色图像的处理

实验六彩色图像的处理一、实验目的1、掌握matlab中RGB图像与索引图像、灰度级图像之间转换函数。

2、了解RGB图像与不同颜色空间之间的转换。

3、掌握彩色图像的直方图处理方法。

二、实验内容及步骤1、RGB图像与索引图像、灰度级图像的转换。

close allRGB=imread('flowers.tif');[R_i,map]=rgb2ind(RGB,8);%RGB图像转换为8色的索引图像figureimshow(R_i,map)[R_g]=rgb2gray(RGB);%RGB图像转换为灰度级图像figureimshow(R_g)思考:将RGB图像’flowers.tif’分别转换为32色、256色、1024色索引图像,是否调色板所表示的颜色值越多图像越好?close allRGB=imread('flowers.tif');[R_i1,map]=rgb2ind(RGB,8);%RGB图像转换为8色的索引图像[R_i2,map]=rgb2ind(RGB,32);%RGB图像转换为32色的索引图像[R_i3,map]=rgb2ind(RGB,256);%RGB图像转换为256色的索引图像[R_i4,map]=rgb2ind(RGB,1024);%RGB图像转换为1024色的索引图像Subplot(221);imshow(R_i1,map);title('8色的索引图像');Subplot(222);imshow(R_i2,map);title('32色的索引图像');Subplot(223);imshow(R_i3,map);title('256色的索引图像');Subplot(224);imshow(R_i4,map);title('1024色的索引图像');结论:随着索引值的增加图像的质量也有增加,更加清晰,色彩也更加鲜明。

但不是不是颜色值越多越好。

当索引值过高时,会出现无法识别而致模糊的情况出现。

2、RGB图像与不同颜色空间的转换。

(1) RGB与HSI颜色空间的转换HSI应用于彩色图像处理。

实验六文件夹中rgb2hsi( )函数将RGB颜色空间转换为HSI 空间并显示各分量, hsi2rgb( )函数是将HSI颜色空间转换为RGB颜色空间。

close allx=imread('flowers.tif');figureimshow(x)title('RGB')x_hsi=rgb2hsi(x);% RGB颜色空间转换成HSI颜色空间, % 并显示H、S、I各分量figureimshow(x_hsi)title('HSI')x_h_r=hsi2rgb(x_hsi);figureimshow(x_h_r)title('HSI-->RGB')(2)RGB与CMY颜色空间转换CMY颜色空间运用在大多数在纸上沉积彩色颜料的设备,如彩色打印机和复印机。

CMY(青、深红、黄)是RGB颜色空间的补色。

close allx=imread('flowers.tif');X = im2double(x);R=X(:,:,1);G=X(:,:,2);B=X(:,:,3);C=1-R;M=1-G;Y=1-B;R1=1-C;G1=1-M;B1=1-Y;CMY=cat(3,C,M,Y);RGB1=cat(3,R,G,B);subplot(1,3,1),imshow(X);title('RGB') ;subplot(1,3,2),imshow(CMY);title('CMY') ;subplot(1,3,3),imshow(RGB1);title('CMY--->RGB') ;思考:如何将RGB图像分解出其R、G、B颜色分量?结果类似下图。

close allx=imread('flowers.tif');X = im2double(x);R=X(:,:,1);G=X(:,:,2);B=X(:,:,3);C1=R;M1=G-G;Y1=B-B;C2=R-R;M2=G;Y2=B-B;C3=R-R;M3=G-G;Y3=B;R=cat(3,C1,M1,Y1);G=cat(3,C2,M2,Y2);B=cat(3,C3,M3,Y3);subplot(1,3,1),imshow(R);title('R') ;subplot(1,3,2),imshow(G);title('G') ;subplot(1,3,3),imshow(B);title('B') ;3、彩色图像的直方图处理(1)在HSI颜色空间对I(强度)分量进行调整及直方图均衡化。

close allx=imread('flowers.tif');figureimshow(x)title('RGB')x_hsi=rgb2hsi(x);% RGB颜色空间转换成HSI颜色空间,% 并显示H、S、I各分量h=x_hsi(:,:,1);s=x_hsi(:,:,2);i=x_hsi(:,:,3);i1=imadjust(i,[0 1],[],0.6);%对I分量进行灰度值调整,使图像更亮x_hsi=cat(3,h,s,i1);x_h_r=hsi2rgb(x_hsi); % HSI空间转换为RGB空间figureimshow(x_h_r)title('imadjust(i,[],[],0.6)')i2=histeq(i); %对I分量进行直方图均衡化,加强对比度 x_hsi=cat(3,h,s,i2);x_h_r=hsi2rgb(x_hsi); % HSI空间转换为RGB空间figureimshow(x_h_r)title('histeq(i)')(2) RGB颜色空间对全彩色进行直方图处理close allx=imread('flowers.tif');figureimshow(x)title('RGB')r=x(:,:,1); g=x(:,:,2); b=x(:,:,3); r1=imadjust(r,[0 1],[],0.6);%对R分量进行灰度值调整g1=imadjust(g,[0 1],[],0.6); %对G分量进行灰度值调整b1=imadjust(b,[0 1],[],0.6); %对B分量进行灰度值调整x1=cat(3,r1,g1,b1);figure; imshow(x1)title('imadjust(r/g/b,[],[],0.6)')r2=histeq(r); %直方图均衡化g2=histeq(g);b2=histeq(b);x2=cat(3,r2,g2,b2);%处理后的R、G、B分量合并回RGB图像figure; imshow(x2)title('histeq(r/g/b)')思考:参考彩色图像的直方图处理方法,分别对RGB图像 'flowers.tif' 进行尺寸为5*5的均值平滑滤波及拉普拉斯锐化。

(在HIS空间或RGB空间都可以)结果类似下图。

拉普拉斯算子:h=[ -1 -1 -1;-1 8 -1;-1 -1 -1;];(1)5*5 均值平滑滤波close all;x=imread('flowers.tif');h=fspecial('average',5);y=imfilter(x,h);subplot(1,2,1);imshow(x);title('RGB');subplot(1,2,2);imshow(y);title('5*5 均值平滑滤波');(2)拉普拉斯锐化close all;x=imread('flowers.tif');h=[ -1 -1 -1;-1 8 -1;-1 -1 -1;];y=imfilter(x,h);subplot(1,2,1);imshow(x);title('RGB');subplot(1,2,2);imshow(y);title('拉普拉斯滤波');三、实验报告1、按照实验步骤做实验;2、记录实验结果,并作出总结;3、按照实验报告格式写出报告。

四、实验心得及机会通过这次实验,我学会并了解了许多有关数字图像处理方面的知识。

以前只是看着课本上的内容学习,对很多知识只是生分的了解,但是不懂得如何应用,通过做实验,自己动手,对图像做一系列的处理和变换,体会到了各种参数对数字图像的影响。

通过此次实验也发现了自己的而许多问题,在对于MATLAB软件的应用上面我还有许多不足,尤其是对如何编写M文件方面很难掌握,仍有待加强。

如有侵权请联系告知删除,感谢你们的配合!。

相关主题