双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。
双边滤波器之所以能够做到在平滑去噪的同时还能够很好的保存边缘(Edge Preserve),是由于其滤波器的核由两个函数生成:
- 一个函数由像素欧式距离决定滤波器模板的系数
- 另一个函数由像素的灰度差值决定滤波器的系数
其综合了高斯滤波器(Gaussian Filter)和αα-截尾均值滤波器(Alpha-Trimmed mean Filter)的特点。高斯滤波器只考虑像素间的欧式距离,其使用的模板系数随着和窗口中心的距离增大而减小;Alpha截尾均值滤波器则只考虑了像素灰度值之间的差值,去掉α%α%的最小值和最大值后再计算均值。
双边滤波器使用二维高斯函数生成距离模板,使用一维高斯函数生成值域模板。
距离模板系数的生成公式如下:
其中(i,j)为模板窗口的中心坐标;(k,l)为模板窗口的其他系数的坐标;为高斯函数的标准差。 表示(k,l)
模版窗口坐标点到模版窗口中心点(i,j)距离的平方。
像素值域模板系数的生成公式如下:
其中,函数f(x,y)表示要处理的图像,f(x,y)表示图像在点(x,y)处的像素值;(i,j)为模板窗口的中心坐标;(k,l)为模板窗口的其他系数的坐标;为高斯函数的标准差。
将上述两个模板相乘就得到了双边滤波器的模板
最终滤波结果为