% 彩色图像的平滑处理
f = imread('flower.tif');
figure,imshow(f);
%f的RGB三个分量
f1 = f(:,:,1);
f2 = f(:,:,2);
f3 = f(:,:,3);
figure,imshow(f1);
figure,imshow(f2);
figure,imshow(f3);
%对f的三个分量单独进行平滑处理
w = fspecial('average',25);
f1_filtered = imfilter(f1,w,'replicate');
f2_filtered = imfilter(f2,w,'replicate');
f3_filtered = imfilter(f3,w,'replicate');
f_filtered = cat(3,f1_filtered,f2_filtered,f3_filtered);
figure,imshow(f_filtered);
%将RGB版本转化为HSI版本(后面程序中包含单单对亮度分量进行
%平滑处理,和对三个分量平滑处理的模糊处理)
%分别显示色调、饱和度分量和亮度分量
h = rgb2hsi(f);
H = h(:,:,1);
S = h(:,:,2);
I = h(:,:,3);
figure,imshow(H);
figure,imshow(S);
figure,imshow(I);
%单单对亮度分量进行平滑处理
w = fspecial('average',25);
I_filtered = imfilter(I,w,'replicate');
h = cat(3,H,S,I_filtered);
figure,imshow(h);
%将单单对亮度分量进行平滑处理的hsi图像转化为rgb图像
f = hsi2rgb(h);
figure,imshow(f);
%对HSI的三个分量都进行平滑处理,并转化为RGB图像
H_filtered = imfilter(H,w,'replicate');
S_filtered = imfilter(S,w,'replicate');
h1 = cat(3,H_filtered,S_filtered,I_filtered);
figure,imshow(h1);
%将hsi图像转化为rgb图像
f4 = hsi2rgb(h1);
figure,imshow(f4);
读者可以对比三种处理的模糊效果
f_filtered图像:直接对RGB图像进行平滑处理
h;只对HSI中的亮度分量进行平滑处理后转化为RGB的图像
f4:对HSI中的色调、饱和度和亮度平滑处理后转化为RGB的图像
图1( f_filtered)
图2(h)
图3(f4)