文档章节

Matlab彩色图像处理

天蚕宝衣
 天蚕宝衣
发布于 2017/04/12 10:29
字数 824
阅读 77
收藏 0

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

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分量锐化后

© 著作权归作者所有

共有 人打赏支持
天蚕宝衣
粉丝 20
博文 239
码字总数 179054
作品 0
天津
加载中

评论(2)

天蚕宝衣
天蚕宝衣

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

大学已经学了这个了
温故知新。
咬尾巴的妖精猫
咬尾巴的妖精猫
大学已经学了这个了
基于MATLAB的RGB转YCBCR色彩空间转换

  使用MATLAB进行图片的处理十分方便,看它的名字就知道了,矩阵实验室(matrix laboratory)。一副图片的像素数据可以看成是一个二维数组一个大矩阵,MTABLAB就是为矩阵运算而生。   MAT...

NingHeChuan
08/22
0
0
数字信号处理、数学形态学、MATLAB GUI实现简单找茬软件

0、简介   这个小作品是我的数字图像处理课程设计,应用基本的图像处理知识与MATLAB的基本脚本编程,实现一个简单的找茬软件。软件实现过程中使用到的找茬游戏图片来源有“梦幻找茬”、“图...

Vitcou
07/11
0
0
图像处理入门教程

  最近有人问我图像处理怎么研究,怎么入门,怎么应用,我竟一时语塞。仔细想想,自己也搞了两年图像方面的研究,做个两个创新项目,发过两篇论文,也算是有点心得,于是总结总结和大家分享...

u013088062
2015/12/29
0
0
【工具使用系列】关于 MATLAB 图像处理工具箱,你需要知道的事

如何使用 MATLAB 图像处理工具箱 MATLAB 图像类型转换 图像文件的读写和查询 图像文件的显示 不同类型的图像显示方法 什么是 MATLAB 图像处理工具箱 图像 图像的概念 图像的分类 图像的表示 ...

AllenMoore
01/28
9
0
(三)matlab数字图像处理实验-图像灰度变换处理

前两节都是熟悉一下怎么在matlab底下对图片做一些操作,并没有什么卵用,这一节稍微有点卵用,灰度变换一般是图像处理的第一步。 数字图像处理实验1-9点击下列链接有源码和链接: matlab数字...

aninstein
01/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
46分钟前
0
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
3
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
2
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
3
0
中秋快乐!!!

HiBlock
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部