基于斜率的自适应中值滤波算法

作者:刘淑娟;赵晔;董蕊;王志巍;杨芳芳 刊名:计算机应用 上传者:杨春波

【摘要】针对图像中椒盐噪声点的准确检测与去除问题,提出一种基于斜率的自适应中值滤波算法。该算法首先用n×n(n为大于或等于3的奇数)的模板作用于待检测图像的每一个像素,若当前像素的灰度值为其邻域内所有像素灰度值的极值,判断此点为准噪声点;再利用像素灰度值序列中两段子序列斜率的差值及模板区域内像素灰度值的均值自适应地判断准噪声点是否为真正的噪声点;最后对被判定为噪声的像素做中值滤波处理。与标准中值滤波方法相比,该方法加强了噪声检测的条件。实验结果表明,该算法具有较好地去除椒盐噪声和保留细节的效果。

全文阅读

0引言噪声的检测和滤除是图像处理中一类重要的问题。在图像生成、传输的过程中,由于各种原因,会在图像中产生噪声。标准中值滤波是消除椒盐噪声的经典算法,即用nn(n为大于或等于3的奇数)的模板作用于当前像素,将这nn个像素灰度值的中间值作为当前像素的灰度值。此方法能在去噪的同时保护图像中的某些细节,但也不可避免地改变了信号点的值,造成了图像的模糊,当模板较大时,细节丢失情况会比较严重,而且若图像中各区域的噪声密度存在较大差异时,该方法很难取得良好的去噪效果。基于此,人们提出了许多改进的中值滤波算法,如定向开关中值滤波算法[1]、双态中值滤波算法[2]、Min-Max滤波算法[3]、模糊脉冲噪声检测及去噪方法[4]、方向加权中值滤波[5]、基于最小生成树的加权中值滤波算法[6]、用于图像处理的自适应中值滤波算法[7-9]、自适应型中心加权的中值滤波[10-12]、基于B-样条函数的自适应中值滤波算法[13]、基于灰色关联度的中值滤波算法[14-15]等。这些算法在改进标准中值滤波的性能方面做了有益的探索,但在实际应用中都有各自的局限性。标准中值滤波是对图像中的每一个像素进行中值替换操作,文献[16]提出了一种基于极值中值(ExtremumMedian,EM)的滤波算法,即首先对滤波窗口内的像素进行判断,只有当前像素为模板内nn个像素灰度值的极值时,才认为其为噪声,并进行中值替换;否则就认为当前点为信号点,不做任何操作,保持其原灰度值。此算法在执行速度及保留细节方面取得了比标准中值滤波更好的效果。本文针对椒盐噪声,提出了一种基于斜率的自适应中值滤波算法,取得了较好的滤波效果。1算法的基本思想及实现用nn的模板对图像进行噪声检测时,若当前像素点为椒盐噪声,则其灰度值应为滤波窗口内所有像素灰度值的极值,但反之不一定成立,即若当前像素点的灰度值为滤波窗口内所有像素灰度值的极值时,它并不一定是噪声,本文称之为准噪声。一般情况下,那些既是准噪声同时又与模板内其他像素的灰度值差别较大的像素,才被认为是真正的噪声。而这正是本文算法的基础。1.1基本思想设当前像素的灰度值为f(i,j),将f(i,j)与滤波窗口内其他像素的灰度值按升序排列后,存放在数组a中。若f(i,j)不是数组a中元素的极值,则判定当前像素为信号点,不做任何操作;若f(i,j)为数组a中元素的极大或极小值,则当前点为准噪声点。此时,准噪声点与模板内其他像素的灰度值之间的关系有图12所示的两种情形(以33模板为例),其中X轴为数组a的下标,Y轴为a中各元素对应的灰度值f。图1中当前像素f(i,j)=a[0],图2中f(i,j)=a[8],显然,图1(a)和图2(a)中的f(i,j)可判定为噪声点,图1(b)和图2(b)中的f(i,j)可判定为信号点。为便于区分噪声点和信号点,按下列原则定义斜率k1和k2:1)当前点为极小值点,即f(i,j)=a[0]时,k1=a[1]-a[0]k2=(a[nn-1]-a[1])/(nn-2)2)当前点为极大值点,即f(i,j)=a[nn-1]时,k1=a[nn-1]-a[nn-2]k2=(a[nn-2]-a[0])/(nn-2)因为数组a是升序排列,所以保证了k10,k20。然后根据k1、k2的值对当前点是否为噪声点进行判断:若k1-k2>T(T为阈值),判定当前点为噪声,进行中值替换;否则,判定当前点为信号点,不做任何操作。图1f(i,j)为极小值的情形图2f(i,j)为极大值的情形1.2阈值T的选取在判定准噪声点f(i,j)是否为真正的噪声点时,需对阈值T进行赋值。

参考文献

引证文献

问答

我要提问