图像处理中的线性和非线性滤波器(上)

  滤波器可以说是信号处理中最重要的研究对象,滤波器可以将原始信号的有用信息通过各种组合来凸显出来,因此很多时候也将它们称为Neighborhood operators,基本上所有涉及到特征的应用场合都要考虑滤波器,即使是发展到看起来很高大上的深度学习等,各种滤波器如果设计的好的话,能够极大地提高整个算法的准确度和效率。
  除了一些简单的滤波器外,今天主要介绍两种滤波器。

1.线性滤波器

  在图像处理中,对邻域中的像素的计算为线性运算时,如利用窗口函数进行平滑加权求和的运算,或者某种卷积运算,都可以称为线性滤波。常见的线性滤波有:均值滤波、高斯滤波、盒子滤波、拉普拉斯滤波等等,通常线性滤波器之间只是模版系数不同。

1.1 均值滤波

  均值滤波一般是用下面的系数模版与图像做卷积运算,公式表示为:

g(x,y)=1/nINeighbourI(x,y)

  n跟系数模版大小有关,一般3*3的模版,n取为9,如:
111111111

1.2 高斯滤波

  高斯滤波一般针对的是高斯噪声,能够很好的抑制图像输入时随机引入的噪声,将像素点跟邻域像素看作是一种高斯分布的关系,它的操作是将图像和一个高斯核进行卷积操作:

Iσ=IGσ

  其中,Gσ是标准差为σ的二维高斯核,定义为:
Gσ=12πσe(x2+y2)/2σ2

  举个例子:
  请将窗口大小为5的一维高斯滤波模版转化为5×5的二维高斯模版。
  解:窗口为5,则3σ=5/2,对应的连续高斯函数一维模版为:
G1=[0.02690.23340.47940.23340.0269]

  这是一维大小为5的高斯窗口,所以二维的5×5高斯窗口可以通过卷积得到:
GT1G1=0.00070.00630.01290.00630.00070.00630.05450.11190.05450.00630.01290.11190.22990.11190.01290.00630.05450.11190.05450.00630.00070.00630.01290.00630.0007

  假如对连续高斯函数取离散化。则:
G1=[0.10.20.40.20.1]

  同样可以得到,二维5×5窗口:
0.010.020.040.020.010.020.040.080.040.020.040.080.160.080.040.020.040.080.040.020.010.020.040.020.01

1.3 盒子滤波

  这个滤波器其实比较常见于OPENCV里面,可以用来加速求和的运算,如在Harris角点的提取,SIFT特征的获得,都用到了这个滤波器,它跟均值滤波器很相近,唯一的区别是盒子滤波不需要除模版的大小,而且它的模版大小是可以变的:

1111m×n

1.4 拉普拉斯滤波

  拉普拉斯滤波器跟上面的三种滤波器的不同在于它是一种高通滤波器,能够保留图像的高频成分,其低频成分最小值为0,所以经常用来求图像的梯度信息即边缘,操作跟上面的一样,只是模版系数不一样,其模板为,同时也常用来求图像的二阶梯度:

010141010m×n

2. 非线性滤波

非线性滤波利用原始图像跟模版之间的一种逻辑关系得到结果,如最值滤波器,中值滤波器。比较常用的有中值滤波器和双边滤波器。

2.1 中值滤波

  中值滤波将窗口函数里面的所有像素进行排序取得中位数来代表该窗口中心的像素值,对椒盐噪声和脉冲噪声的抑制效果特别好,同时又能保留边缘细节,用公式表示是:

g(x,y)=median(I(x,y))   x,yϵNeighbour

2.2 双边滤波

  双边滤波(Bilateral filter)也是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的,具有简单,非迭代、局部的特点,它比高斯滤波多了一个高斯方差σd,用公式表示就是:

g(x,y)=m,nf(m,n)w(x,y)m,nw(x,y)

w(x,y)为加权系数,取决于定义域核和值域核的乘积。

3. 实验

图像处理中的线性和非线性滤波器(上)
  结论:从滤波的结果可以看出各种滤波算法对图像的作用非常不同,有些变化非常大,有些甚至跟原图一样。在实际应用时,应根据噪声的特点、期望的图像和边缘特征等来选择合适的滤波器,这样才能发挥图像滤波的最大优点。