发布时间 : 星期六 文章MATLAB在数字图像处理上的应用要点更新完毕开始阅读
图4-6 中值滤波结果
4.2.4 线性锐化滤波器
线性高通滤波器是最常用的线性锐化滤波器。这种滤波器的中心系数都是正的,而周围的系数都是负的。对3*3的模板来说,典型的系数取值是:
[-1 –1 –1;-1 8 –1;-1 –1 -1]
事实上这是拉普拉斯算子,所有的系数之和为0。当这样的模板放在图像中灰度值是常数或变化很小的区域时,其输出为0或很小。这个滤波器将原来的图像中的零频域分量去除了,也就是将输出的图像的平均值变为0,这样就会有一部分像素的灰度值小于0。在图像处理中我们一般只考虑正的灰度值,所以还有将输出图像的灰度值范围通过尺度变回到所要求的范围。 MATLAB代码所示: I=imread('saturn.tif'); m=fspecial('laplacian') I1=filter2(m,I)
h=fspecial('unsharp',0.5); I2=filter2(h,I)/255; subplot(1,2,1); imshow(I1);
title('高通滤波laplacian算子')
9
subplot(1,2,2); imshow(I2);
title('高通滤波unsharp') 处理结果如图4-7所示:
图4-7空域高通滤波
4.3 频域增强
4.3.1 基本原理
卷积理论是频域技术的基础。设函数f(x,y)与线性位不变算子h(x,y)的卷积结果是g(x,y),即g(x,y)=h(x,y)*f(x,y)
那么根据卷积定理在频域有:
G(x,y)=H(u,v)F(u,v)
其中G(x,y)、 H(u,v)、F(u,v)分别是g(x,y)、h(x,y)、f(x,y)的傅立叶变换。
频域增强的主要步骤是:
(1)技术所需增强图的傅立叶变换;
(2)将其与一个(根据需要设计的)转移函数相乘; (3)再将结果进行傅立叶反变换以得到增强的图。 频域增强的两个关键步骤:
(1)将图像从空域转换到频域所需的变换及将图像从频域空间转换回空域所需的变换;
10
(2)在频域空间对图像进行增强加工操作。
常用的频域增强方法有低通滤波和高通滤波。以下分别介绍在MATLAB中如何实现。
4.3.2 低通滤波
图像的能量大部分集中在幅度谱的低频和中频度,而图像的边缘和噪声对应于高频部分。因此能降低高频成分幅度的滤波器就能减弱噪声的影响。
Butterworth 低通滤波器是一种物理上可以实现的低通滤波器,n阶,截断频率为d0的Butterworth低通滤波器的转移函数为:
H(u,v)=
1 2n1?[d(u,v)/d0]用MATLAB实现Butterworth低通滤波器的代码所示: I1=imread('Saturn.tif'); figure,imshow(I1) I2=imnoise(I1,'salt'); figure,imshow(I2) f=double(I2); g=fft2(f); g=fftshift(g); [N1,N2]=size(g); n=2; d0=50; n1=fix(N1/2); n2=fix(N2/2); for i=1:N1 for j=1:N2
d=sqrt((i-n1)^2+(j-n2)^2); h=1/(1+0.414*(d/d0)^(2*n)); result(i,j)=h*g(i,j); end
11
end
result=ifftshift(result); X2=ifft2(result); X3=uint8(real(X2)); figure,imshow(X3)
原图和处理结果如图4-8和图4-9所示
图4-8加噪 图4-9 去噪
4.3.3 高通滤波
高通滤波也称高频滤波器,它的频值在0频率处单位为1,随着频率的增长,传递函数的值逐渐增加;当频率增加到一定值之后传递函数的值通常又回到0值或者降低到某个大于1的值。在前一种情况下,高频增强滤波器实际上是依照能够带通滤波器,只不过规定0频率处的增益为单位1。
实际应用中,为了减少图像中面积大且缓慢变化的成分的对比度,有时让0频率处的增益小于单位1更合适。如果传递函数通过原点,则可以称为laplacian滤波器。
n阶截断频率为d0的Butterworth高通滤波器的转移函数为:
H(u,v)=
1 2n1?[d0/d(u,v)]MATLAB实现Butterworth高通滤波器代码所示:
12