椒盐噪声也称为脉冲杂讯,是图像常见的一种杂讯,为随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。椒盐噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、模数转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。
常用的去除这种噪声的有效手段为中值滤波器。下面的实例图像分别是原始图像、带有椒盐噪声的图像、经过平均滤波器修复的图像以及经过中值滤波器修复的图像。
原始图像
|
加入椒盐噪声的图像
|
使用平均滤波器重建的图像
|
使用中值滤波器重建的图像
|
一般使用非线性滤波器处理椒盐噪声的方法,以下将简介三种解决方法。
异常侦测(Anomaly detection)有时称为异常值侦测(Outlier detection),如其名所隐含的,在给定的资料集合中,它将侦测在已有的规律中表现异常者。现今常用的方法以计算距离为基础的K-近邻演算法或是机器学习中的支持向量机等,下图的例子以平均数为基础,在3X3的遮罩中,计算每个像素的平均值,与平均值相差绝对值ε的像素值将被平均值取代,其中,遮罩大小和误差值ε则是和输入图片内容相关。
异常值侦测的缺点在于用平均值替代像素值,会造成像素值单一的背景出现异常的杂点(如天空),虽然相较于原本的椒盐噪声不明显,但仍然可以看出。
中值滤波器(Median filtering) 如其名,将一个像素的值用该像素邻域中强度值的中间值来取代(计算中间值的过程中,也会将该像素的原始值包含),中值滤波器在处理椒盐噪声上能提供绝佳的杂讯降低效能。中值滤波器所衍伸的问题是计算速率,举例而言,要计算5个元素 的中值滤波器的计算过程如下:
-
-
Median filter pseudocode
先取最小值再取最大值可以得到中间值,但做最小值的过程中,需要先考虑10个可能的选项( ),由于计算速度的考量,因此促进了Pseudo-median filtering (PMED)的产生。
中值滤波器的缺点为让边缘模糊、较不锐利,由于使用中间值替代向素值,在像素值容易有较大变化的地方,如边界或细节的地方,会被模糊。
为了改进中值滤波器的计算速率,伪中值滤波器(Pseudo-median filtering) 以近似的方法算出中间值,以5个元素的伪中值滤波器为例
-
-
其中,MAXMIN会低估中间值,而MINMAX会高估中间值,将两者平均起来以近似中间值。应用在2D的伪中值滤波器可以有许多取法,例如:
PMED Illustration
.........
- Digital Image Processing, 3/E, Rafael C. Gonzalez, and Richard E. Woods
- Non-linear time variant system analysis, Jian-Jiun Ding(2013)