"数字图像的空间域滤波"
本实验的目的是让学生掌握图像滤波的根本定义与目的,了解空间域滤波的根本原理与方法,并掌握进展图像的空域滤波的方法。同时,学生还将了解频域滤波的根本原理与方法,并掌握进展图像的频域滤波的方法。
空间域滤波是在图像空间中借助模板对图像进展领域操作,处理图像每一个像素的取值都是根据模板对输入像素相应领域的像素值进展计算得到的。空域滤波可以分为线性滤波和非线性滤波两类。线性滤波器的设计常基于对傅立叶变换的分析,而非线性空域滤波器那么一般直接对领域进展操作。各种空域滤波器根据功能主要分为平滑滤波器和锐化滤波器。平滑可用低通来实现,平滑的目的可分为两类:一类是模糊,目的是在提取较大的目标前去除太小的细节或将目标的小肩端连接起来;另一类是消除噪声。锐化可用高通滤波来实现,锯化的目的是为了增强被模糊的细节。
空间域滤波器都是基于模板卷积,其主要工作步骤是:1)将模板在图中移动,并将模板中心与图中某个像素位置重合;2)将模板上的系数与模板下对应的像素相乘;3)将所有乘积相加;4)将和〔模板的输出响应〕赋给图中对应模板中心位置的像素。
MATLAB 提供了fspecial 函数生成滤波时所用的模板,并提供filter2 函数用指定的滤波器模板对图像进展运算。fspecial 函数的语法格式为:h=fspecial(type); h=fspecial(type,parameters);其中参数 type 指定滤波器的种类,parameters 是与滤波器种类有关的具体参数。MATLAB 也提供了imnoise 函数给图像增添噪声,其语法格式为:J=imnoise(I,type); J=imnoise(I,type,parameters);参数type 指定噪声的种类,parameters 是与噪声种类有关的具体参数。
非线性空域滤波器中值滤波器是一种常用的非线性平滑滤波器,其滤波原理与均值滤波器方法类似,但计算的非加权求和,而是把领域中的图像的象素按灰度级进展排序,然后选择改组的中间值作为输出象素值。MATLAB 提供了medfilt2 函数来实现中值滤波,其语法格式为:B=medfilt2(A,[m n]); B=medfilt2(A);
锐化滤波器图像平滑往往使图像中的边界、轮廓变得模糊,为了减少这类不利效果的影响,需要利用图像锐化技术,使图像的边缘变得清晰。线性锐化滤波器是最常用的线性锐化滤波器。这种滤波器的中心系数都是正的,而周围的系数都是负的,所有的系数之和为0。邻域平均可以模糊图像,因为平均对应积分,所以利用微分可以锐化图像。图像处理中最常用的微分方法是利用梯度。常用的空域非线性锐化滤波微分算子有sobel 算子、prewitt 算子、log 算子等。
频域增强是利用图像变换方法将原来的图像空间中的图像以某种形式转换到其他空间中,然后利用该空间的特有性质方便地进展图像处理,最后再转换回原来的图像空间中,从而得到处理后的图像。频域增强的主要步骤是:选择变换方法,将输入图像变换到频域空间。在频域空间中,根据处理目的设计一个转移函数,并进展处理。将所得结果用反变换得到增强的图像。常用的频域增强方法有低通滤波和高通滤波。