数字图像的增强处理
1.空域直方图均衡化
直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。
运行程序如下:
I=imread('C:\Users\ibm\Desktop\C13.gif');
subplot(2,2,1),imshow(I);
title('原图像');
subplot(2,2,2) ,imhist(I) ;
title('原图像直方图');
J=histeq(I);
subplot(2,2,3), imshow(J);
title('均衡化后图像');
subplot(2,2,4), imhist(J);
title('均衡化后图像直方图');
2. 平滑算法
(1)均值滤波法
在M A T L A B图像处理工具箱中,提供了i m f i l t e r函数用于实现均值滤波,i m f i l t e r的语法格式为:B=i m f i l t e r(A,H)
其功能是,用H模板对图像A进行均值滤波,
取平均值滤波模版为H1=1/9[111;111;111];
以这个平均值滤波算子对图3-1中的四幅图像进行滤波操作。
程序如下:
I=imread('C:\Users\ibm\Desktop\C13.gif');
I1=imnoise(I,'gaussian');
I2=imnoise(I,'salt & pepper',0.02);
I3=imnoise(I,'speckle');
H1=ones(3,3)/9; %3×3领域模板
J=imfilter(I,H1); %领域平均
J1=imfilter(I1,H1);
J2=imfilter(I2,H1);
J3=imfilter(I3,H1);
subplot(221),imshow(J);
subplot(222),imshow(J1);
subplot(223),imshow(J2);
subplot(224),imshow(J3);
运行结果如图
(a)原图像滤波后(b)受高斯噪声污染的图像滤波后
(c)受盐椒噪声污染的图像滤波后(d)受乘法噪声污染的图像滤波后
比较处理后的图像结果可知,领域平均处理后,图像的噪声得到了抑制,但图像变得相对模糊,对高斯噪声的平滑效果比较好。领域平均法的平滑效果与所选用的模板大小有关,模板尺寸越大,则图像的模糊程度越大。此时,消除噪声的效果将增强,但同时所得到的图像将变得更模糊,图像细节的锐化程度逐步减弱。
(2)中值滤波法
M A T L A B图像处理工具箱提供了m e d f i l t2函数用于中值滤波。其语法格式为:B=m e d f i l t2(A)其功能为:用3×3的滤波窗口对图像A进行中值滤波;B=m e d f i l t2(A,[m,n])
其功能是:用大小为m×n的窗口对图像A进行中值滤波;
B=m e d f i l t2(A,'i n d e x e d',...)其功能为:对索引图像A进行中值滤波;
可运行以下程序实现:
I=imread('C:\Users\ibm\Desktop\C13.gif');
I1=imnoise(I,'gaussian');
I2=imnoise(I,'salt & pepper',0.02);
I3=imnoise(I,'speckle');
J1=medfilt2(I1,[3,3]); %3×3中值滤波模板
J2=medfilt2(I2,[3,3]);
J3=medfilt2(I3,[3,3]);
J4=medfilt2(I1,[5,5]); %5×5中值滤波模板
J5=medfilt2(I2,[5,5]);
J6=medfilt2(I3,[5,5]);
figure,subplot(121),imshow(J1);
subplot(122),imshow(J2);
figure,subplot(121),imshow(J3);
subplot(122),imshow(J4);
figure,subplot(121),imshow(J5);
subplot(122),imshow(J6);
(a)高斯噪声经3×3中值滤波(b)盐椒噪声经3×3中值滤波
(c)乘法噪声经3×3中值滤波(d)高斯噪声经5×5中值滤波
(e) 盐椒噪声经5×5中值滤波(f)乘法噪声经5×5中值滤波
由图可知,此方法能够非常好地将椒盐噪声去除掉,可见中值滤波方法对于椒盐噪声或脉冲式干扰具有很强的滤除作用,但对于高斯和乘性噪声效果不佳。与上图和本图相比,当噪声为椒盐噪声时,中值滤波器的效果比均值滤波好。因为这些干扰值与其邻近像素的灰度值有很大的差异,经过排序后取中值的结果就将此干扰强制变成与其邻近的某些像素值一样,从而达到去除干扰的效果。但是由于中值滤波方法在处理过程中会带来图像模糊,所以对于细节丰富,特别是点、线和尖顶细节较多的图像不适用。
3. 锐化算法
(1)梯度锐化法(Roberts梯度)
Roberts 梯度就是采用对角方向相邻两像素之差,故也称为四点差分法。特点:用4点进行差分,以求得梯度,方法简单。其缺点是对噪声较敏感,常用
于不含噪声的图像边缘点检测。梯度算子类边缘检测方法的效果类似于高通滤波,有增强高频分量,抑制低频分量的作用。这类算子对噪声较敏感,而我们希望检测算法同时具有噪声抑制作用。
程序如下:
I=imread('C:\Users\ibm\Desktop\C13.bmp');
imshow(I);
BW1=edge(I,'roberts',0.1); %对输入的图像求罗伯茨梯度,figure,imshow(BW1); 然后进行二值处理,阈值为0.1
(2)拉普拉斯算子
拉普拉斯算子与其它边缘增强方法的不同之处在于,该方法是一种各向同性的增强方法,即其边缘的增强程度与边缘的方向无关,从而可以满足不同走向的边缘锐化的要求。拉普拉斯边缘增强方法产生的边缘锐化程度大于其它边缘增强方法。并且不论灰度梯度是正的还是负的,该方法都能使边缘得到增强。
程序如下:
I=imread('C:\Users\ibm\Desktop\C13.bmp ');
imshow(I);
h=[0 -1 0;-1 4 -1;0 -1 0];
I2=imfilter(I,h);
figure,imshow(I2);
原图拉普拉斯算子
(3)Sobel和Prewitt算子
Sobel算子和Prewitt算子一样,都在检测边缘点的同时具有抑制噪声的能力,检测出的边缘宽度至少为二像素。由于它们都是先平均后差分,平均时会丢失一些细节信息,使边缘有一定的模糊。但由于Sobel算子的加权作用,其使边缘的模糊程度要稍低于程度要稍低于Prewitt算子。
程序如下:
I=imread(' C:\Users\ibm\Desktop\C13.bmp ');
imshow(I);
hs=fspecial('sobel');
S=imfilter(I,hs);
hp=fspecial('prewitt');
P=imfilter(I,hp);
figure,imshow(S,[]);
figure,imshow(P.[]);
原图sobel算子Prewitt算子
︽
数
字
图
像
处
理
︾
报
告
0908101053
殷四新
09电科二班