自适应中值滤波器的实现与在图像降噪中的应用
滤波器被广泛地用于图象的预处理,抑制图象噪声,增强对比度,以及强化图象的边沿特征.运
用较为广泛的线性滤波器如平均值滤波器,能较好地抑制图象中的加性噪声. 但是,线性滤波
器会引起图象的钝化或模糊,使得图象中物体边界产生位移. 特别是,在图象受到乘性噪声或
脉冲噪声的干扰,如超声波及雷达成像中普遍存在的斑点噪声,线性滤波器就不能取得预期的
效果.中值滤波器,就像其名字一样,是用该像素的相邻像素的灰度中值来代替该像素的值,
是一种非线性滤波器。 例如滤波窗口由 3×3 个象素组成,则其中 5 个象素的灰度值会小于等
于该滤波器的输出灰度值,同时 5 个象素的灰度值会大于等于滤波器的输出. 由此可见,对于
离散的脉冲噪声,当其出现的次数小于窗口尺寸的一半时,将被抑制掉同时也能较好地保证图
象的边沿特征,而且易于实现. 因此它被广泛地应用于图象处理,尤其是医学图象处理,如超声
波图象.但由于其使用的滤窗大小是固定不变的,当窗中噪声像素数超过有用像素之半时(噪
声密度较大时),中值滤波滤波作用大大降低。多次试验验证:在脉冲噪声强度大于 0.2 时,中
值滤波效果就显得不是令人满意。而本文介绍的自适应中值滤波器会根据一定的设定条件
改变滤窗的大小,即当噪声面积较大时,通过增加滤窗的大小将噪声予以去除,同时当判断滤
窗中心的像素不是噪声时,不改变其当前像素值,即不用中值代替。这样,自适应中值滤波器
可以处理噪声概率更大的脉冲噪声,同时在平滑非脉冲噪声图像时能够更好地保持图像细节,
这是传统中值滤波器做不到的。文中首先介绍了自适应中值滤波器的原理,随后分析了实
现的关键技术,并给出了程序代码,最后与传统中值滤波进行了试验比较,试验结果验证了
自适应中值滤波器的有效性和实用性。
2.自适应中值滤波器的原理介绍及实现技术
2.1 算法原理介绍
自适应中值滤波器的滤波方式和传统的中值滤波器一样,都使用一个矩形区域的窗口 Sxy ,不
同的是在滤波过程中,自适应滤波器会根据一定的设定条件改变,即增加滤窗的大小,同时当
判断滤窗中心的像素是噪声时,该值用中值代替,否则不改变其当前像素值,这样用滤波器的
输出来替代像素(x,y) 处(即目前滤窗中心的坐标的值。我们做如下定义
Zmin 是在 Sxy 滤窗内灰度的最小值;
Zmax 是在 Sxy 滤窗内灰度的最大值;
Zmed 是在 Sxy 滤窗内灰度的中值;
Zxy 是坐标(x,y)处的灰度值;
Smax 指定 Sxy 所允许的最大值。
自适应中值滤波算法由两个部分组成,称为第一层(Level A) 和第二层(Level B) 。
主要算法如下:
Level A : A1 = Zmed – Zmin A2 = Zmed - Zmax
如果 A1> 0 并且 A2<0,转到 level B ,否则增加滤窗 Sxy 的尺寸。
如果滤窗 Sxy≤Smax ,则重复执行 Level A ,否则把 Zxy 作为输出值。
Level B : B1 = Zxy – Zmin B2 = Zxy - Zmax
如果 B1>0 并且 B2<0, 把 Zxy 作为输出值, 否则把 Zmed 作为输出值。
2.2 实现技术
在对当前像素计算完成之后,滤波滑窗 Sxy 就会移到下一个像素点的位置,自适应中值滤波器
便重新还原开始对新像素点进行计算。设滤窗的长、宽相等,用 window 表示,其最大值用
Smax 表示。
2.2.1 程序主体代码
程序初始化
评论0
最新资源