一、算法介绍
中值滤波器是非线性滤波器的一个例子,它在保留图像特征方面非常有效。 但是,滤波器的窗口大小直接影响中值滤波器的性能。 较小的窗口保留了特征,但会导致噪声抑制的减少。 在较大窗口的情况下,噪声抑制很高,但图像内容保留有限。 随着对标准中值滤波器的研究,提出了许多滤波器,如加权中值滤波器和许多其他高级滤波器。
1、自适应中值滤波器
在噪声密度不是很大的情况下(根据经验,噪声的出现的概率小于0.2),使用中值滤波的效果不错。但是当噪声出现的概率比较高时,原来的中值滤波算法就不是很有效了。只有增大滤波器窗口尺寸,尽管会使图像变得模糊。
使用自适应中值滤波器的目的就是,根据预设好的条件,动态地改变中值滤波器的窗口尺寸,以同时兼顾去噪声作用和保护细节的效果。
自适应中值滤波器分为以下两个过程,A和B:
A:
- A1 =Gmed - Gmin
- A2 = Gmed - Gmax
- 如果A1>0 且 A2<0,则跳转到B
- 否则,增大窗口的尺寸
- 如果增大后的尺寸≤Smax,则重复A
- 否则,直接输出Gmed
B:
- B1 = Gxy - Gmin
- B2 = Gxy - Gmax
- 如果B1>0 且 B2<0,则输出Gxy
- 否则输出Gmed
在自适应中值滤波算法中,A步骤实质是判断当前区域的中值点是否是噪声点,通常来说是满足Gmin<Gmed<Gmax这个条件的,此时中值点不是噪声点,跳转到B;考虑一些特殊情况,如果Gmed=Gmin或者Gmed=Gmax,则认为是噪声点,应该扩大窗口尺寸,在一个更大的范围内寻找一个合适的非噪声点,随后再跳转到B,否则输出的中值点是噪声点;
接下来考虑跳转到B之后的情况:判断中心点的像素值是否是噪声点,原理同上。如果不是噪声点,我们可以保留当前像素点的灰度值;如果是噪声点,则使用中值替代原始灰度值,滤去噪声。
这里考虑在A步骤中,若不满足条件,是否增大窗口尺寸。可以尝试删去噪声点后重新选取中值,减小运算量。如果删去噪声点这一操作过多,说明该窗口内噪声密度较大,此时再考虑扩大窗口。
2、加权中值滤波器
标准中值滤波窗口内各点对输出的作用是相同的,如果希望强调中间点或中间点附近点的作用,采用加权中值滤波。其基本原理是改变窗口中变量的个数,然后对扩张的数据集求中值:
特殊地,如果取值W5=2K+1,其他权重均为1,则称为中心加权中值滤波(CWM),其中K为任意非负整数。显然,当K=0时,CWMF就是标准中值滤波;当2K+1>=L*L时(L为滤波器窗口大小),CWM不起作用。具有较大中心权重的 CWM 滤波器在细节保留方面表现更好,但在噪声抑制方面比具有较小中心权重的滤波器更差。
3、三态中值滤波器
三态中值滤波器(Tri-state median filter,TSM)主要分为两步:噪声检测,三态决策。噪声检测是通过脉冲检测器实现的,它从 SM (standard median filter)和 CWM 滤波器获取输出并将它们与原点或中心像素值进行比较,以做出三态决策。
其中,三态决策方式为:
阈值 T 会影响脉冲检测的性能。
TSM 滤波的一个的优点是提供了一种自适应决策,可以简单地根据这些滤波器的输出来检测局部噪声。在抑制噪声和保留细节间的得到了较好的平衡。