图15 原图像 图16 加0.25椒盐噪声后图像
图17 3 3中值滤波后图像 图18 5 5中值滤波后图像
图19 7 7中值滤波后图像 图20 9 9中值滤波后图像
如上图所示,借助MATLAB算法,快速处理各图像,但主要缺点是在降低噪声的同时使图像模糊,特别在图像的边缘和细节处。另外比较以上图17、图18、图19、图20可知,当所用平滑校板的尺寸由3 3到9 9逐渐增大时,消除噪声的效果不断增强,同时经过处理所得的图像也会变得越来越模糊,细节锐化程度逐步降低。因此在进行中值滤波时窗口大小选择很重要。但是如何找到合适的中值滤波改进算法既能够具有很强的去噪能力,又能够保证图像的边缘和细节清晰就显得更加重要[5]。
4. 自适应中值滤波
4.1 自适应中值滤波算法基本原理
设 表示中心像素点 在滤波时所对应的掩模窗口。令 、 、 分别为 中的灰度最小值、最大值、中间值, 为在坐标 上的灰度, 为允许的最大尺寸, 的算法工作分为两个层次, 可定义为 层和 层。 层: , , 如果 ,且 , 则转到 层。否则,增大窗口尺寸。 如果窗口尺寸小于 ,则重复 层。否则, 输出 。 层: , , 如果 , 且 , 则输出 。否则, 输出 。 层用来判断 是否为一脉冲, 层用来判断 是否为一脉冲。如果 和 都不是脉冲,则算法就利用输出一个不变的像素值 来代替邻域中值作为输出,以避免不必要的细节损失[6]。 为了客服传统中在滤除密度较大的椒盐噪声不彻底的缺点, 自适应中值滤波算法采用了通过扩大窗口来相对地减少冲激噪声空间密度。
4.2 自适应中值滤波仿真
4.2.1 仿真函数的介绍
结合MATLAB工具箱中的函数,在原中值滤波程序的基础上,改进新算法,在操作简化基础上将工作重点放在如何进行算法改善上,可以明确直观地观察不同算法对于图像的处理效果,有助于算法的优化。下面为实现数字图像自适应中值滤波的具体过程。
(1) 打开MATLAB的M文件编辑器,编写如下内容:
这个函数中调用了 和 两个与中值滤波相关的函数。其中 的作用是对图象矩阵 的每一元素作如下处理:按由小到大的顺序取邻域 中的第 个元素进行替换,即最小值中值滤波、最大值中值滤波等。 的作用是用指定大小为 x 的窗口对图象 进行中值滤波。
(2) 选择 命令,将所有文件保存在 文件夹中。将它保存在默认目录下,以便后面调用。
(3) 调用时,只需直接调用工具箱里自带的函数和编写的扩展函数[7]。
4.2.2 自适应中值滤波与7×7中值滤波仿真结果比较
如下图所示,通过传统7 7中值滤波与自适应中值滤波比较。突出自适应中值滤波的优点。图21为原始图像。图22载入0.25的椒盐噪声后图像,图像受污染比较严重。图23为传统7×7中值滤波。图24为自适应中值滤波法滤波后图像[8]。
图21 原始图像 图22 加入强度为0. 25椒盐噪声的图像
图23 7×7中值滤波后的图像 图24 自适应中值滤波后的图像
图22显示了被“椒盐”噪声污染了的图像,结果比较见图23与图24,该噪声的水平非常高,能够模糊图像的大部分细节。用传统中值滤波法作为比较的基础,图像首先采用7×7的中值滤波器进行滤波,消除大部分可见的脉冲噪声痕(见图23)。虽然噪声被有效消除了,但是滤波器在图像上也引起了明显的细节损失。图24显示了使用改进中值滤波算法进行滤波:自适应中值滤波的图像。该滤波器的效果显著,在噪声消除水平同中值滤波器相似。但是,自适应滤波器保持了点的尖锐性和其细节,可以看出,其改进后的滤波效果是很明显的。另外,通过两个函数的运行时间可以看出,自适应中值滤波器在滤波过程中花费的时间较长,对于不是很大的图像这还是可以接受的,随着科技的发展,这个问题也将会得到很好解决[8]。 MATLAB中值滤波在灰度图像处理中的应用研究和仿真(4):http://www.youerw.com/tongxin/lunwen_569.html