您的位置:首页 > 编程语言 > MATLAB

matlab 彩色图像处理

2016-11-21 23:24 597 查看
转载请注明来自我的CSDN博客:黄朝辉的博客

读入一幅彩色图像,进行如下图像处理:

(1) 在RGB彩色空间中对图像进行模糊和锐化处理

rgb= imread('flower.jpg');
figure;  imshow(rgb); title('原图');


%平滑滤波
r=rgb(:,:,1);
g=rgb(:,:,2);
b=rgb(:,:,3);
m=fspecial('average',[8,8]);
r_filtered=imfilter(r,m);
g_filtered=imfilter(g,m);
b_filtered=imfilter(b,m);
rgb_filtered=cat(3,r_filtered,g_filtered,b_filtered);
figure;  imshow(rgb_filtered);  title('模糊后');
imwrite(rgb_filtered, 'RGB彩色空间模糊后.jpg');


彩色空间模糊后



%拉普拉斯
lapMatrix=[1 1 1;1 -8 1;1 1 1];
i_tmp=imfilter(rgb,lapMatrix,'replicate');
i_sharped=imsubtract(rgb,i_tmp);
figure;   imshow(i_sharped); title('锐化后');
imwrite(i_sharped, 'RGB彩色空间锐化后.jpg');


RGB彩色空间锐化后



(2) 在HSI彩色空间中,对H分量图像进行模糊和锐化处理,转换回RGB格式并观察效果

(3) 在HSI彩色空间中,对S分量图像进行模糊和锐化处理,转换回RGB格式并观察效果

(4) 在HSI彩色空间中,对I分量图像进行模糊和锐化处理,转换回RGB格式并观察效果

fc = imread('flower.jpg');
h = rgb2hsi(fc);
H = h (:,:,1);
S = h (:,:,2);
I = h (:,:,3);

subplot(3,3,1);imshow(fc);  title('原图');


原图



%平滑滤波
m=fspecial('average',[8,8]);
h_filtered=imfilter(H,m);
img_h_filtered = cat(3,h_filtered,S,I);
rgb_h_filtered = hsi2rgb(img_h_filtered);
subplot(3,3,2);imshow(rgb_h_filtered);  title('H分量模糊后');
imwrite(rgb_h_filtered, 'H分量模糊后.jpg');


H分量模糊后



%拉普拉斯
lapMatrix=[1 1 1;1 -8 1;1 1 1];
i_tmp=imfilter(H,lapMatrix,'replicate');
H_sharped=imsubtract(H,i_tmp);
img_h_sharped = cat(3,H_sharped,S,I);
rgb_h_sharped = hsi2rgb(img_h_sharped);
subplot(3,3,3); imshow(rgb_h_sharped); title('H分量锐化后');
imwrite(rgb_h_sharped, 'H分量锐化后.jpg');


H分量锐化后



subplot(3,3,4);imshow(fc);  title('原图');
%平滑滤波
m=fspecial('average',[8,8]);
s_filtered=imfilter(S,m);
img_s_filtered = cat(3,H,s_filtered,I);
rgb_s_filtered = hsi2rgb(img_s_filtered);
subplot(3,3,5);imshow(rgb_s_filtered);  title('S分量模糊后');
imwrite(rgb_s_filtered, 'S分量模糊后.jpg');


S分量模糊后



%拉普拉斯
lapMatrix=[1 1 1;1 -8 1;1 1 1];
i_tmp=imfilter(S,lapMatrix,'replicate');
s_sharped=imsubtract(S,i_tmp);
img_s_sharped = cat(3,H,s_sharped,I);
rgb_s_sharped = hsi2rgb(img_s_sharped);
subplot(3,3,6); imshow(rgb_s_sharped); title('S分量锐化后');
imwrite(rgb_s_sharped, 'S分量锐化后.jpg');


S分量锐化后



subplot(3,3,7);imshow(fc);  title('原图');
%平滑滤波
m=fspecial('average',[8,8]);
i_filtered=imfilter(I,m);
img_i_filtered = cat(3,H,S,i_filtered);
rgb_i_filtered = hsi2rgb(img_i_filtered);
subplot(3,3,8);imshow(rgb_i_filtered);  title('I分量模糊后');
imwrite(rgb_i_filtered, 'I分量模糊后.jpg');


I分量模糊后



%拉普拉斯
lapMatrix=[1 1 1;1 -8
c511
1;1 1 1];
i_tmp=imfilter(I,lapMatrix,'replicate');
i_sharped=imsubtract(I,i_tmp);
img_i_sharped = cat(3,H,S,i_sharped);
rgb_i_sharped = hsi2rgb(img_i_sharped);
subplot(3,3,9); imshow(rgb_i_sharped); title('I分量锐化后');
imwrite(rgb_i_sharped, 'I分量锐化后.jpg');


I分量锐化后

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息