B分量平滑 三分量平滑合成
H分量 S分量
I分量 I分量平滑
仅I分量平滑RGB 两种结果之差
实验结果分析:
从实验结果可以看出:用两种方法对图像进行平滑所得结果不完全相同。 3.彩色图像的两种锐化滤波 对图像实行锐化滤波的方法有两种
(1)彩色图像用传统的Laplacian分别锐化R、G、B3个分量图像,再对锐化后的分量图像合成。
(2)将RGB图像转换到HSI模型,仅对强度分量I进行锐化处理,而保持色度和饱和度分量不变,再将其转换到RGB空间进行显示。 最后可计算两种锐化滤波的差。
在RGB彩色系统中,向量c的Laplacian变换为
2R x,y
22
c x,y G x,y
2 B x,y
可以通过分别计算每一分量图像的Laplacian去计算全彩色图像的Laplacian。 程序如下:
rgb1=imread('006.jpg');%彩色图像的锐化
rgb=im2double(rgb1); fR=rgb(:,:,1); fG=rgb(:,:,2); fB=rgb(:,:,3); figure(); imshow(fR); figure(); imshow(fG); figure(); imshow(fB);
figure(); imshow(rgb);
lapMatrix=[1 1 1;1 -8 1;1 1 1];
fR_filtered=imfilter(fR,lapMatrix,'replicate'); fG_filtered=imfilter(fG,lapMatrix,'replicate'); fB_filtered=imfilter(fB,lapMatrix,'replicate'); figure();
imshow(fR_filtered); figure();
imshow(fG_filtered); figure();
imshow(fB_filtered);
rgb_tmp=cat(3,fR_filtered,fG_filtered,fB_filtered); rgb_filtered=imsubtract(rgb,rgb_tmp); figure();
imshow(rgb_filtered); I1=(fR+fG+fB)/3;
tmp1=min(min(fR,fG),fB); tmp2=fR+fG+fB; tmp2(tmp2==0)=eps; S=1-3.*tmp1./tmp2;
tmp1=0.5*((fB-fG)+(fR-fB));
tmp2=sqrt((fR-fG).^2+(fR-fB).*(fG-fB)); theta=acos(tmp1./(tmp2+eps)); H1=theta;
H1(fB>fG)=2*pi-H1(fB>fG); H1=H1/(2*pi); H1(S==0)=0; figure(); imshow(H1); figure(); imshow(S); figure(); imshow(I1);
lapMatrix=[1 1 1;1 -8 1;1 1 1]; I=imfilter(I1,lapMatrix,'replicate'); figure();
imshow(I);%I分量锐化
实验结果:
R分量 G分量
B分量 原始彩色图像
R分量锐化 G分量锐化
B分量锐化 三分量锐化合成
H分量 S分量
I分量 I分量锐化
实验结果分析:
两种方法对图像进行锐化所得结果不完全相同。 4.彩色图像的边缘检测 原理:
令r,g,b是RGB彩色空间沿R,G,B轴的单位向量,可定义向量
R G Br g b x x x
为
R G Bv r g b
y y yu
数量gxx,gyy,gxy定义为这些向量的点乘,如下所示:
R G Bgxx u u uTu
x x x R G B
gyy v v vTv
y y ygxy u v uT v
2
2
2
2
2
2
R R G G B B
x y x y x y
利用该表示法,c(x,y)的最大变化率方向可以由角度给出:
2gxy 1
arctan
2g g yy xx
(x,y)点在θ方向上变化率的幅值由下式给出:
1
F gxx g
yy gxx gyy cos2 2gxysin2
2
1
2
程序如下:
rgb=imread('chaopao.jpg');%边缘检测 sob=fspecial('sobel'); figure();
imshow(rgb);%输出彩色原图
Rx=imfilter(double(rgb(:,:,1)),sob,'replicate'); Ry=imfilter(double(rgb(:,:,1)),sob,'replicate'); Gx=imfilter(double(rgb(:,:,2)),sob,'replicate'); Gy=imfilter(double(rgb(:,:,2)),sob,'replicate'); Bx=imfilter(double(rgb(:,:,3)),sob,'replicate'); By=imfilter(double(rgb(:,:,3)),sob,'replicate'); gxx=Rx.^2+Gx.^2+Bx.^2; gyy=Ry.^2+Gy.^2+By.^2; gxy=Rx.*Ry+Gx.*Gy+Bx.*By;
theta=0.5*(atan(2*gxy./(gxx-gyy+eps)));
G1=0.5*((gxx+gyy)+(gxx-gyy).*cos(2*theta)+2*gxy.*sin(2*theta)); theta=theta+pi/2;
G2=0.5*((gxx+gyy)+(gxx-gyy).*cos(2*theta)+2*gxy.*sin(2*theta)); G1=G1.^0.5; G2=G2.^0.5;
rgb_gradiant=mat2gray(max(G1,G2)); figure();
imshow(rgb_gradiant);%向量梯度边缘
实验结果:
实验分析:
通过对彩色图像向量梯度计算,根据向量梯度的幅值检测边缘,能够很好的提取出汽车的边缘。
5.彩色图像直方图处理:
在灰度图像处理中,直方图均衡自动的确定一种变换,该变换试图产生具有均匀的灰度值的直方图。由于彩色图像是由多个分量组成的,所以,必须考虑适应多于一个分量的直方图的灰度级技术。而独立地进行彩色图像分量的直方图均衡通常是不可取得,这将产生不正确的色彩,一个更符合逻辑的方法是均匀的扩展彩色强度,而保留彩色本身(即色调饱和度)不变。下面程序将会呈现这两种方法的对比:
rgb=imread('006.jpg'); rgb1=im2double(rgb); r=rgb1(:,:,1); g=rgb1(:,:,2); b=rgb1(:,:,3); I1=(r+g+b)/3;
tmp1=min(min(r,g),b); tmp2=r+g+b; tmp2(tmp2==0)=eps; S=1-3.*tmp1./tmp2; tmp1=0.5*((r-g)+(r-b));
tmp2=sqrt(((r-g).^2+(r-b).*(g-b))); theta=acos(tmp1./(tmp2+eps)); H1=theta;
H1(b>g)=2*pi-H1(b>g); H1=H1/(2*pi); H1(S==0)=0; figure(); imshow(H1); figure(); imshow(I1);
I=histeq(I1);%对图像I1进行均衡化 figure();
imshow(I);%均衡化结果 hsi=cat(3,H1,S,I); H=hsi(:,:,1)*2*pi; S=hsi(:,:,2); I=hsi(:,:,3); figure(); imshow(S);
imhist(I1);%I分量直方图 figure();
imhist(I);%I分量直方图均衡化后直方图 R=zeros(size(hsi,1),size(hsi,2)); G=zeros(size(hsi,1),size(hsi,2)); B=zeros(size(hsi,1),size(hsi,2)); ind=find((H>=0)&(H<2*pi/3)); B(ind)=I(ind).*(1.0-S(ind));
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说医药卫生数字图像处理结课论文(2)在线全文阅读。
相关推荐: