双边滤波(Bilateral filter)是一种可以保边去噪的滤波器。之所以可以达到此去噪效果,是因为滤波器是由两个函数构成。
一个函数是由几何空间距离决定滤波器系数。另一个由像素差值决定滤波器系数。使用二维高斯函数生成距离模板,使用一维高斯函数生成像素差值模板。
对比两个filter:高斯低通滤波器和α-截尾均值滤波器(去掉百分率为α的最小值和最大之后剩下像素的均值作为滤波器), 双边滤波器同时考虑了空间域与值域的差别,而Gaussian Filter和α均值滤波分别只考虑了空间域和值域差别。
双边滤波器中,输出像素的值 g ( i , j ) g(i,j) g(i,j)依赖于邻域像素的值的加权组合: g ( i , j ) = ∑ k , l f ( k , l ) w ( i , j , k , l ) ∑ k , l w ( i , j , k , l ) g(i,j)=\frac{\sum_{k,l}f(k,l)w(i,j,k,l)}{\sum_{k,l}w(i,j,k,l)} g(i,j)=∑k,lw(i,j,k,l)∑k,lf(k,l)w(i,j,k,l)
距离模板 d ( i , j , k , l ) d(i,j,k,l) d(i,j,k,l): d ( i , j , k , l ) = e x p ( − ( i − k ) 2 + ( j − l ) 2 2 σ d 2 ) d(i,j,k,l)=exp(-\frac{(i-k)^2+(j-l)^2}{2\sigma_d^2}) d(i,j,k,l)=exp(−2σd2(i−k)2+(j−l)2)
像素差值模板 r ( i , j , k , l ) r(i,j,k,l) r(i,j,k,l): r ( i , j , k , l ) = e x p ( − ∣ ∣ f ( i , j ) − f ( k , l ) ∣ ∣ 2 2 σ r 2 ) r(i,j,k,l)=exp(-\frac{||f(i,j)-f(k,l)||^2}{2\sigma_r^2}) r(i,j,k,l)=exp(−2σr2∣∣f(i,j)−f(k,l)∣∣2) 其中,函数 f ( i , j ) f(i,j) f(i,j)表示要处理的图像, f ( i , j ) f(i,j) f(i,j)表示图像在点 ( i , j ) (i,j) (i,j)处的像素值; ( k , l ) (k,l) (k,l)为模板窗口的其他系数的坐标; ( i , j ) (i,j) (i,j)为模板窗口的中心坐标; σ d \sigma_d σd和 σ r \sigma_r σr为高斯函数的标准差。
将上述两个模板相乘就得到了双边滤波器的模板: w ( i , j , k , l ) = d ( i , j , k , l ) × r ( i , j , k , l ) = e x p ( − ( i − k ) 2 + ( j − l ) 2 2 σ d 2 − ∣ ∣ f ( i , j ) − f ( k , l ) ∣ ∣ 2 2 σ r 2 ) w(i,j,k,l)= d(i,j,k,l)\times r(i,j,k,l)= exp(-\frac{(i-k)^2+(j-l)^2}{2\sigma_d^2}-\frac{||f(i,j)-f(k,l)||^2}{2\sigma_r^2}) w(i,j,k,l)=d(i,j,k,l)×r(i,j,k,l)=exp(−2σd2(i−k)2+(j−l)2−2σr2∣∣f(i,j)−f(k,l)∣∣2)