将这些分量滤去可使图像平滑。
锐化滤波器:它能减弱或消除傅立叶空间的高频分量。 空域滤波器都是利用模板卷积,主要步骤如下:
(1) 将模板在图中漫游,并将模板中心与图中某个像素位置重合; (2) 将模板上的系数与模板下对应的像素相乘; (3) 将所有的乘积相加;
(4) 将和(模板的输出响应)赋给图中对应的模板中心位置像素。 下面分别介绍在MATLAB中如何应用平滑和锐化滤波器。
3.2.2 线性平滑滤波器
线性低通滤波器是最常用的线性平滑滤波器。这种滤波器的所有系数都是正的。对3*3的模板来说,最简单的操作是取所有系数都为1。为保证输出图像仍在原来的灰度范围内,在计算R后要将其除以9再进行赋值。这种方法称为邻域平均法[4]。
MATLAB实现均值过滤器的代码所示: I=imread('saturn.tif');
J=imnoise(I,'salt & pepper',0.02); imshow(I) figure,imshow(J)
K1=filter2(fspecial('average',3),J)255; figure,imshow(K1) title('3*3的均值滤波器')
原图像,加入椒盐噪声的图像和均值滤波的图像分别如图3-5、图3-6和图3-7所示:
图3-5 原图 图3-6加入椒盐噪声图像
图3-7 3*3的均值滤波器处理结果
3.2.3 非线性平滑滤波器
中值滤波器是最常用的非线性平滑滤波器。它是一种临域运算,类似于卷积,但计算的不是加权求和,而是把邻域中的像素按灰度级进行排序,然后选择改组的中间值作为输出的像素值[7]。具体步骤:
(1) 将模板在图像中漫游,并将模板中心和图像某个像素的位置重合; (2) 读取模板下对应像素的灰度值; (3) 将这些灰度值从小到大排成一列; (4) 找出这些值排在中间的一个;
(5) 将这个中间值赋给对应模板中心位置的像素。 MATLAB实现中值滤波器代码所示: I=imread('saturn.tif');
J=imnoise(I,'salt & pepper',0.02); K1=medfilt2(J,[3,3]); figure,imshow(K1)
中值滤波的结果如图3-8所示:
图3-8 中值滤波结果
3.2.4 线性锐化滤波器
线性高通滤波器是最常用的线性锐化滤波器。这种滤波器的中心系数都是正的,而周围的系数都是负的[2]。对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) .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(N12); n2=fix(N22); for i=1:N1 for j=1:N2
d=sqrt((i-n1)^2+(j-n2)^2); ));
result(i,j)==2; d0=5; n1=fix(N12); n2=fix(N22); for i=1:N1 for j=1:N2
d=sqrt((i-n1)^2+(j-n2)^2); if d==0 )); end
result(i,j)=h*g(i,j); end end
result=ifftshift(result); X2=ifft2(result); X3=uint8(real(X2)); figure,imshow(X3)
原图和处理结果如图3-12和3-13所示:
图3-12原图 图3-13高通滤波
4 结束语
本文在前人研究的基础上,增加了MATLAB语言在图像处理中的应用价值,利用MATLAB语言及其图像处理工具箱进行数字图像处理。主要通过图像求反、增强对比度、空域滤波等处理程序的灵活性达到提高清晰度的目的。另外,本论文还具有程序简单、实用、可读性强等特点,提高了程序运行速度和防数据出错的能力,使其具有很强的实用性和学术参考价值。
通过本次毕业论文,使我学到了许多书本上无法学到的知识,也深深体会到MATLAB数字图像处理技术在社会各领域的广泛应用,此次论文写作不仅使我对学过的MATLAB软件的基础知识有了很多的巩固,同时也对MATLAB这一门课程产生了更大的兴趣。
在完成本次毕业论文的过程中,使我对各种图像处理功能的作用有了更深的了解,其中包括:空域变换、空域滤波、频域增强等功能对图像处理效果的影响。