双边滤波是一种非线性的保边滤波。那么双边滤波是如何实现保边滤波的呢?
1.双边滤波公式解析:我们先从双边滤波的公式入手:
双边滤波器之所以能够做到在平滑去噪的同时还能够很好的保存边缘(Edge Preserve),是由于其滤波器的核由两个函数生成:空间域核和值域核
(1)空间域核:由像素位置欧式距离决定的模板权值权重值
其中,为模板窗口的其他系数的坐标;其中为模板窗口的中心坐标点;为高斯函数的标准差。 使用该公式生成的滤波器模板和高斯滤波器使用的模板是没有区别的。
(2)值域核:由像素灰度值的差值决定模板的权重值
为模板窗口的其他系数的坐标;表示图像在点的像素值。其中为模板窗口的中心坐标点;对应的像素值为,为高斯函数的标准差。
一般我们称为值域核,为空间域核,两者的大小都在[0,1]之间。
(3)将两个核域相乘,即可得到双边滤波的权重值
由上述公式我们知道:
空域权重是由邻域内中心像素和领域内其他像素的距离决定,其距离越远,权重值越大 值域权重是由邻域内中心像素的像素值和邻域内其他像素的像素值之差所决定。两像素值约相近其权重越大。 2.双滤波和高斯滤波的比较 2.1双滤波和高斯滤波的比较:高斯滤波示意图
由上图可知,有噪声的图像经过高斯滤波之后平滑了许多,右侧梯度较高的区域,经过高斯滤波之后,变成了有一定坡度的斜坡。从图像看来,滤波之后原始图像的边缘在一定程度上被模糊了。
高斯滤波之后效果图
由上图可知,有噪声的图像经过双边滤波之后平滑了许多,右侧梯度较高的区域,经过双边滤波之后,基本上依旧保持原来的梯度。从图像看来,滤波之后原始图像的边缘保留了。
以上双边滤波是在RGB域做的处理。处理之后,我们依旧能够观察到很多色噪。
这些色噪我们是否能够再消除一些呢?
色噪比较明显的图像,如果我们能够对亮度和色度分量做不同强度的降噪,即对亮度分量做相对较小的降噪(当然也是需要视觉上看不出来太多噪声),对色度分量较强的降噪处理,这样,我们就可以消除掉色噪,并且边缘信息也不会损失很多。
因此,我们可以把含有色噪较多的原始图像,从RGB颜色空间转换到YUV颜色空间。把亮度和色度分量分开处理。对亮度分量进行较小的双边滤波,对色度分量进行较大的双边滤波处理。
上图可以,在YUV颜色空间进行较大的双边滤波之后,其色噪要比RGB颜色空间进行双边滤波的结果少很多。
2.2双滤波和高斯滤波的定性分析:把如上相关权重作用于边缘图像之后,我们得到:
后两个图的右上角和左下角,我没有再计算,以空白留白。
上图可知,边缘图像经过高斯滤波之后,边缘部分和边缘周边像素差异较小,边缘已经被模糊了;经过双边滤波之后,边缘部分仍然和原始图像边缘相似,很好的保留了边缘,同时消除了噪声。
如上所示,在平坦区域,邻域内的像素值非常相近,其值域权重接近于1;施加到高斯滤波权重上基本不对高斯滤波其作用,即在平坦区域双边滤波基本上是执行的高斯滤波;在边缘区域边缘上像素值基本一致,值域权重较大;而非边缘区域的像素与边缘区域像素值相差较大,其值域权重基本为零,施加到高斯权重之后,基本上只对边缘区域的像素进行滤波。而边缘像素的像素值基本一致,因此,很大程度上保留的边缘。