《数字图像处理-彩色图像实验报告》由会员分享,可在线阅读,更多相关《数字图像处理-彩色图像实验报告(18页珍藏版)》请在金锄头文库上搜索。
1、6.3实验步骤(1)对彩色图像的表达和显示* * * * * * * * * * * *显示彩色立方体* * * * * * * * * * * * *rgbcube(0,0,10); %从正面观察彩色立方体rgbcube(10,0,10); %从侧面观察彩色立方rgbcube(10,10,10); %从对角线观察彩色立方体%* * * * * * * * * *索引图像的显示和转换* * * * * * * * * *f=imread(D:PictureFig0604(a)(iris).tif); figure,imshow(f); %f是RGB真彩图像%rgb图像转换成8色索引图像,不采用
2、抖动方式X1,map1=rgb2ind(f,8,nodither);figure,imshow(X1,map1);%采用抖动方式转换到8色索引图像X2,map2=rgb2ind(f,8,dither);figure,imshow(X2,map2);%显示效果要好一些g=rgb2gray(f);%f转换为灰度图像g1=dither(g); %将灰色图像经过抖动处理,转换打二值图像figure,imshow(g); %显示灰度图像figure,imshow(g1); %显示抖动处理后的二值图像程序运行结果: 彩色立方体 原图 不采用抖动方式转换到8色索引图像 采用抖动方式转换到8色索引图像 灰度图
3、像 抖动处理后的二值图像(2)彩色空间转换f=imread(D:PictureFig0604(a)(iris).tif); figure,imshow(f); %f是RGB真彩图像%转换到NTSC彩色空间ntsc_image=rgb2ntsc(f); figure,imshow(ntsc_image(:,:,1); %显示亮度信息figure,imshow(ntsc_image(:,:,2); %显示色差信息figure,imshow(ntsc_image(:,:,3); %显示色差信息%转换到HIS彩色空间hsi_image=rgb2hsi(f); figure,imshow(hsi_ima
4、ge(:,:,1); %显示色度信息figure,imshow(hsi_image(:,:,2); %显示饱和度信息figure,imshow(hsi_image(:,:,3); %显示亮度信息程序运行结果:原图转换到NTSC彩色空间 显示亮度信息 显示色差信息 显示色差信息转换到HIS彩色空间 显示色差信息 显示饱和度信 显示亮度信息(3)彩色变换f=imread(D:PictureFig0614(a)(Chalk Original).tif); G=ice(image,f); %打开ice窗口对图像进行调整 %在窗口中执行以下操作: %a)得到图像的补色 %b)拖动映射曲线,对图像显示效果
5、进行修改 %c)在颜色通道中选中某一颜色,然后对映射曲线进行修改程序运行结果(1): 全彩色图片 ICE窗口 它的补色 ICE窗口 拖动映射曲线,图像的显示效果ICE窗口 选择Red ICE窗口f2=imread(D:Picture JLK Magenta.tif); figure,imshow(f2); %在CMYK彩色空间内打开图像 g2=ice(image,f2,space,CMYK);%f2的图像色彩偏红,拖动映射曲线,%调整映射参数,使图像的色彩看起来比较正常。程序运行结果(2) 原图 在CMYK彩色空间内打开图像 调整映射参数后ICE窗口(4)彩色空间滤波%* * * * * *
6、* * * * * * * * * * * * * * 彩色图像平滑 * * * * * * * * * * * * * * * * * * * * * *fc=imread(D:PictureFig0604(a)(iris).tif); figure,imshow(fc);h=rgb2hsi(fc); %转换到HIS彩色空间H=h(:,:,1); %色度分量S=h(:,:,2); %饱和度分量I=h(:,:,3); %亮度分量w=fspecial(average,25); %2525的方形平滑算子I_filtered=imfilter(I,w,replicate); %对亮度分量进行平滑操作
7、H1=cat(3,H,S,I_filtered); %将H、S、I三个分量重新组合起来f=hsi2rgb(H1); %转换到RGB彩色空间f=min(f,1); %f的值控制在0,1之间figure,imshow(f); %彩色图像平滑处理%* * * * * * * * * * * * * * * * 彩色图像锐化 * * * * * * * * * * * * * * * * * * * * * * fb=imread( D:PictureFig0604(a)(iris).tif);lapmask=1 1 1;1 -8 1;1 1 1; %拉普拉斯算子g=imfilter(fb,lapma
8、sk,replicate); %拉普拉斯算子处理figure,imshow(g);%图像锐化后与原图像相减fen=imsubtract(fb,g);figure,imshow(fen); %显示差值图像程序运行结果: 原图 彩色图像平滑处理 拉普拉斯算子处理锐化处理(5)彩色图像分割%* * * * * * * * * * * * * * * * * 彩色边缘检测* * * * * * * * * * * * close all;clear;clc;f=imread(iris.tif); %f如图6-4所示%直接计算彩色边缘VG,并得到对单独彩色平面的二维梯度求和形成的梯度PPGVG,A,PP
9、G=colorgrad(f); figure,imshow(VG, ); %显示彩色梯度图像figure,imshow(A, ); %显示彩色梯度对应的角度图像figure,imshow(PPG, ); %显示分量梯度图像g=VG-PPG; %计算两种梯度方法得到的梯度之差figure,imshow(g, ); %显示差值图像程序运行结果: 彩色梯度图像 彩色梯度对应的角度图像 分量梯度图像 两种梯度差值图像%* * * * * * * * * * * * * * * * * 彩色图像分割 * * * * * * * * * * * * * * * * * * * * * * * * * f=
10、imread(jupitermoon.tif); %f如图6-4所示mask=roipoly(f); %手工选定图中红色区域%取得选定区域图像的红色分量 R=immultiply(mask,f(:,:,1); %取得选定区域图像的绿色分量G=immultiply(mask,f(:,:,2);%取得选定区域图像的蓝色分量B=immultiply(mask,f(:,:,3);g=cat(3,R,G,B); %取得选定区域的RGB图像 figure,imshow(g);%显示取得选定区域M,N,K=size(g); %选定区域的大小I=reshape(g,M*N,3); %对g中的像素进行重排,按列
11、序拉成一行idx=find(mask); %找到mask中的像素在重排后的图像g中位置I=double(I(idx,1:3); %转换到double类型C,m=covmatrix(I); %计算协方差矩阵C主对角线上的元素,即方差%sd=sqrt(d) %求得这些元素的平方根,即均方差 均方差%用欧式距离对图像进行彩色分割,阈值为25 E25=colorseg(euclidean,f,25,m);E251=f;E251(E25=0)=0figure,imshow(E251,);%用马氏距离对图像进行彩色分割,阈值为25M25=colorseg(mahalanobis,f,25,m,C);fig
12、ure , imshow(M25 , );程序运行结果: 原图 选定区域 欧氏距离彩色分割 马氏距离彩色分割6.4 思考题(1)请将图6-1所示的彩色图像转换到灰度图像,并根据灰度值对此灰度图像进行索引化,手工指定索引表中的RGB值,并把此索引图像显示出来。程序代码如下%思路:把原图想转换为128位索引图close all;clear;clc;%将f从灰度图像转换为索引图像,x是索引图像;%map是索引矩阵,R,G,B的值都相等f=imread(D:PictureRGB_iris.tif);figure,imshow(f); % f是RGB图像 f1=rgb2gray(f); %将f转换成灰度图像figure,imshow(f1);