Matlab彩色图像处理
Matlab彩色图像处理
天蚕宝衣 发表于8个月前
Matlab彩色图像处理
  • 发表于 8个月前
  • 阅读 26
  • 收藏 0
  • 点赞 0
  • 评论 2

腾讯云 技术升级10大核心产品年终让利>>>   

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

1. 在RGB颜色空间中对图像进行平滑滤波(模糊)和锐化滤波(锐化)处理。

1.1. 读入一幅图像。

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

1.2. 对读入的图像进行平滑滤波。  

% 平滑滤波  
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');

平滑滤波后的效果是彩色图像变得模糊,即RGB彩色空间变得模糊。下图为效果图: 
RGB彩色空间模糊后

1.3. 对读入的图像进行锐化滤波。  

% 拉普拉斯。
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彩色空间被锐化滤波后,图像变得粗糙,下图为效果图: 
RGB彩色空间锐化后

2. 在HSI空间对图像进行处理。

(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('原图');

原图 
原图

2.1. 对H分量进行处理。

2.1.1 对HSI彩色空间中的H分量进行平滑滤波

% 平滑滤波。
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分量模糊后,效果图如下所示:
H分量模糊后

2.1.2. 对HSI彩色空间中的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分量锐化后 
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');

2.2 对S分量进行处理。

2.2.1 模糊后 
S分量模糊后

2.2.2 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分量锐化后 
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');

2.3 对I分量进行处理

2.3.1 平滑滤波

图形变得模糊,下图为效果图: 
I分量模糊后

2.3.2 对I分量进行锐化处理

% 拉普拉斯。
lapMatrix = [1 1 1; 1 -8 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分量锐化后的效果图:
I分量锐化后

共有 人打赏支持
粉丝 16
博文 222
码字总数 146332
评论 (2)
咬尾巴的妖精猫
大学已经学了这个了
天蚕宝衣

引用来自“咬尾巴的妖精猫”的评论

大学已经学了这个了
温故知新。
×
天蚕宝衣
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: