Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

关于双边滤波的理论介绍

背景

使用OpenCV时,[OpenCV的官方文档](OpenCV: Smoothing Images)中提到了如下几种滤波器:

  1. 均值滤波器
  2. 中值滤波器
  3. 高斯滤波器
  4. 双边滤波器

前面三种到在课堂上有接触,但最后一种并没有听说过,于是便记录以下这种滤波器的特性

高斯滤波器与α-截尾均值滤波器

高斯滤波器原理与均值滤波器类似,都是取滤波器窗口内的像素均值作为输出,不过在均值滤波器中,模板系数均为相同的1,但高斯滤波器具有高斯函数图像的特性,中间高,四周逐渐减小,反映到滤波器上就是距离中心越近的模板系数越大,越远的模板系数越小

α-截尾均值滤波器则与中值滤波器较为相似,其思想是将模板窗中的像素进行排序后,取消百分率为α的最小值与最大值,之后剩下的像素均值作为模板中心像素值。

可见,高斯滤波器考虑的是像素距离(空间域)的差别,而α截尾均值滤波器则考虑的是值域的差别。

双边滤波器

双边滤波器则将上述两种滤波器的想法融合,计算领域像素的加权组合:

$g(i,j) = \frac{\sum_{k,l} f(k,l)w(i,j,k,l)}{\sum_{k,l} w(i,j,k,l)}$

其中权重w的计算既考虑了像素距离差别,又考虑了值域的差别。w由如下两部分组成:

$d(i,j,k,l) = exp(-\frac{(i-k)^2 + (j - l)^2}{2\sigma ^2_d})$

$r(i,j,k,l) = exp(-\frac{|f(i,j) - f(k,l)|^2}{2\sigma ^2_r})$

即w的值为:

$w(i,j,k,l) = d(i,j,k,l) \times r(i,j,k,l)$

可见在加入r(i,j,k,l)后,滤波器具备了衡量像素相似程度的考量,即插值越大的像素,权值越小,对中心像素的影响也就越小。进而可以达到平滑图像的同时尽可能的保留边缘信息。

参考文献

  1. 双边滤波论文
  2. [维基百科](Bilaterale Filterung – Wikipedia)

评论