第六章(5至6节) 彩色图像处理
2017-06-26 11:24
225 查看
彩色图像锐化
在RGB向量空间直接处理
1 采用梯度的彩色边缘检测
代码如下:
效果如下:
在使用imfilter时,RGB图像完全可以当做单色图像处理,避免了对分量的拆分和合并,imsubtract函数表示相减,因为锐化重要的一步就是原图像与经过滤波后的图像进行相减。
colorgrad函数代码如下:
测试例子
效果如图:
其实正常情况下PPG图像的水平边缘比VG中的对应边缘更弱,主要原因是红色和绿色平面的梯度产生两个垂直边缘,蓝色平面的梯度产生单个水平边缘。为形成PPG而相加这三个梯度会产生亮度两倍于水平边缘亮度的垂直边缘。
在RGB向量空间直接处理
1 采用梯度的彩色边缘检测
1. 彩色图像锐化
用线性空间滤波器锐化一幅RGB彩色图像的基本步骤和第三章学过的差不多,但使用的是锐化滤波器,我们考虑使用的还是拉普拉斯算子锐化图像。代码如下:
h=imread('C:\Users\sh qian\Desktop\flower.jpg'); lapmask=[1 1 1;1 -8 1;1 1 1]; filter=imfilter(h,lapmask,'replicate'); fen=imsubtract(h,filter); imshow(fen); figure,imshow(h); subplot(1,2,1),imshow(h); title('原图'); subplot(1,2,2),imshow(fen); title('经过锐化后的图像');
效果如下:
在使用imfilter时,RGB图像完全可以当做单色图像处理,避免了对分量的拆分和合并,imsubtract函数表示相减,因为锐化重要的一步就是原图像与经过滤波后的图像进行相减。
2. 在RGB向量空间直接处理
2.1 采用梯度的彩色边缘检测
我在书中的附录里找到了实现RGB图像的彩色梯度的函数,我理解的大概意思是,根据传入的(一定是)RGB图像,以及一个Sobel掩膜sh,因为sh是近似于垂直方向的梯度,所以还需要一个水平方向的掩膜sh’。然后对这个RGB图像进行分通道滤波,而且要在垂直和水平方向分别滤波。接下来,就是一系列的数学公式的推导(还得慢慢理解吧),最后计算每个平面的梯度。colorgrad函数代码如下:
function [VG,A,PRG]=colorgrad(f,T) if ndims(f)~=3 || size(f,3) ~=3 error('Input image must be RGB'); end sh=fspecial('sobel'); sv=sh'; Rx=imfilter(double(f(:,:,1)),sh); Ry=imfilter(double(f(:,:,1)),sv); Gx=imfilter(double(f(:,:,2)),sh); Gy=imfilter(double(f(:,:,2)),sv); Bx=imfilter(double(f(:,:,3)),sh); By=imfilter(double(f(:,:,3)),sv); gxx=Rx.^2+Gx.^2+Bx.^2; gyy=Ry.^2+Gy.^2+By.^2; gxy=Rx.*Ry+Gx.*Gy+Bx.*By; A=0.5*(atan(2*gxy./(gxx-gyy+eps))); G1=0.5*((gxx+gyy)+(gxx-gyy).*cos(2*A)+ a9a7 2*gxy.*sin(2*A)); A=A+pi/2; G2=0.5*((gxx+gyy)+(gxx-gyy).*cos(2*A)+2*gxy.*sin(2*A)); G1=G1.^0.5; G2=G2.^0.5; VG=mat2gray(max(G1,G2)); %计算每个平面的梯度 RG=sqrt(Rx.^2+Ry.^2); GG=sqrt(Gx.^2+Gy.^2); BG=sqrt(Bx.^2+By.^2); PRG=mat2gray(RG+GG+BG); if nargin==2 VG=(VG>T).*VG; PRG=(PRG>T).*PRG; end
测试例子
c=imread('tem.jpg'); [VG,A,PPG]=colorgrad(c); figure,imshow(VG); figure,imshow(PPG); subplot(2,2,3),imshow(b); title('原图'); imhist(PPG,255); imhist(VG,255); title('VG直方图'); subplot(2,2,4),imhist(PPG,255); title('PPG直方图');
效果如图:
其实正常情况下PPG图像的水平边缘比VG中的对应边缘更弱,主要原因是红色和绿色平面的梯度产生两个垂直边缘,蓝色平面的梯度产生单个水平边缘。为形成PPG而相加这三个梯度会产生亮度两倍于水平边缘亮度的垂直边缘。
相关文章推荐
- 第六章(1至4节) 彩色图像处理
- 《数字图像处理 第三版》(冈萨雷斯)——第六章 彩色图像处理
- 第六章 彩色图像处理
- 第六章 彩色图像处理
- 图形图像处理-之-彩色转化到灰度的速度优化
- ImagesUtil 图片处理 缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印
- OpenCV 第六章彩色图像 Laplace变换 板书
- 数字图像处理:3.伪彩色处理
- 数字图像处理之24位真彩色转256色调色边图
- 双边滤波器在灰度和彩色图像处理中的应用
- OpenCV实现彩色图像转换为灰度图及二值化处理
- (7)MATLAB彩色图像处理
- Delphi图像处理 -- 真彩色图像转换为低色彩图像
- 彩色图像的灰度化处理
- 【图像处理之常用算法一】——彩色图像的灰度化
- Javascript图像处理之将彩色图转换成灰度图
- 图形图像处理-之-彩色转化到灰度的速度优化
- Java图像处理技巧四则-剪切,缩放,灰度变换,彩色变换
- 数字图像处理 RGB与HIS彩色空间分割
- 【原】数字图像处理学习之三彩色图像处理