1.概述
在图像处理中,在进行如边缘检测这样的进一步处理之前,通常需要首先进行一定程度的降噪。中值滤波是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的噪声。这个设计思想就是检查输入信号中的采样并判断它是否代表了信号,使用奇数个采样组成的观察窗实现这项功能。观察窗口中的数值进行排序,位于观察窗中间的中值作为输出。然后,丢弃最早的值,取得新的采样,重复上面的计算过程。中值滤波是图像处理中的一个常用步骤,它对于斑点噪声和椒盐噪声来说尤其有用。保存边缘的特性使它在不希望出现边缘模糊的场合也很有用。
1.1 中值滤波快速算法
很多人提出了各种中值滤波的快速算法,其共同特点是只考虑滑动窗口中移入和移出的数据,避免了传统算法中因排序所需的大量数据比较,从而较大地提高了速度。本文从另一个角度提出了一种快速算法,考虑的对象是单个滑
动窗内的像素。具体步骤如下:
(1) X考虑待处理的窗口内像素为 i={X1,,Xc,,Xn},加权窗为Wi={W1, W2, Wn} X。对中心像素 c进行比较,将窗口内的像素分为小于、等于和大于Xc3类[3],并加上相应权值来统计每一类的个数分别记为Left、 Center和Right。把小于和大于Xc的像素分别放入数组LEFT[]和RIGHT[]。例如X3则Left=Left+W3,并加入W3个X3到数组LEFT[m] 、LEFT[m+1] 、直到LEFT[m+ W3-1],令m=Left,取下一个像素重复以
上步骤,取完为止。
(2) 比较Left和Right X,如两者相等则中值为中心像素 c。
(3) |Left-Right|