一、 实验目的:
实验五 彩色图像处理
1、使用 RGB 、Indexed 和 Gray 图像间转换函数
2、掌握彩色图像平滑与锐化的算法
3、彩色图像的分割
二、 实验内容
1、使用 RGB 、Indexed 和 Gray 图像间转换函数
对图像“Fig0630(01)(strawberries_fullcolor).tif ”使用 rgb2ind 分别产生 8 色抖 动和非抖动图像;使用 rgb2gray 实现图像转换,并使用函数 dither 产生其抖 动形式的图像。
分别显示如下:
2、彩色图像平滑与锐化
对图像“ F ig0604(a)(iris).tif ” 在 RGB 空 间 实 现 彩色图像的平滑 ( w =ones
(25)./(25*25))与锐化(w= [1 1 1 1 1; 1 1 1 1 1; 1 1 -24 1 1 ; 1 1 1 1 1; 1 1 1 1 1];)(函数 imfilter );输出结果分别如下:
在 HSI 空间实现彩色图像的平滑(w=ones (25)./(25*25)),(函数 imfilter, rgb2hsi, cat ),观察仅平滑亮度分量(intensity )和平滑全部三个分量结果的差 别。
3、彩色图像分割
用 colorseg 函 数 实 现 基 于 肤 色 的 人 脸 分 割 。
对 图 像
“'Fig0636(woman_baby_original).tif ”在 HSI 空间,用函数 colorseg 分别用参 数“euclidean ”和“mahalanobis ”实现人脸分割。
结果类似如下:
三、显示以上各图
f=imread('Fig0630(01)(strawberries_fullcolor).tif');
[x1,map1]=rgb2ind(f,8,'nodither');
figure,imshow(x1,map1);
title('ind nodither');
[x2,map1]=rgb2ind(f,8,'dither');
figure,imshow(x2,map1);
title('ind dither');
g=rgb2gray(f);
g1=dither(g);
figure,imshow(g);
title('gray nodither');
figure,imshow(g1);
title('gray dither');
i=imread('Fig0604(a)(iris).tif');
figure,imshow(i);
w1=ones(25)./(25*25);
w2=[1 1 1 1 1;1 1 1 1 1;1 1 -24 1 1;1 1 1 1 1;1 1 1 1 1]; i1=imfilter(i,w1,'replicate');
i2=imfilter(i,w2,'replicate');
figure,imshow(i1);
title('rgb平滑');
figure,imshow(i2)
title('rgbr锐化');
h=rgb2hsi(i);
H=h(:,:,1);
S=h(:,:,2);
I=h(:,:,3);
h1=imfilter(h,w1,'replicate');%平滑全部三个分量
I2=imfilter(I,w1,'replicate');%仅平滑亮度分量
h2=cat(3,H,S,I2);
hi1=hsi2rgb(h1);
hi2=hsi2rgb(h2);
hi1=min(hi1,1);
hi2=min(hi2,1);
figure,imshow(hi1);
title('平滑全部三个分量')
figure,imshow(hi2);
title('仅平滑亮度分量')
a=imread('Fig0636(woman_baby_original).tif'); mask=roipoly(a);
r=immultiply(mask,a(:,:,1));
g=immultiply(mask,a(:,:,2));
b=immultiply(mask,a(:,:,3));
g=cat(3,r,g,b);
[M,N,K]=size(g);
b=reshape(g,M*N,3);
idx=find(mask);
b=double(b(idx,1:3));
[C,d]=covmatrix(b);
aa1=colorseg('euclidean',a,25,d);
aa2=colorseg('mahalanobis',a,25,d);
figure,imshow(aa1,[]);
figure,imshow(aa2,[]);。