【图像处理】三种边缘保持的滤波器(双边,引导,加权最小二乘)

这里写图片描述
这里写图片描述
这里写图片描述

从原理上分析,这几种滤波器没有太大的差别,都是基于最基本的思想:在梯度比较大的地方(edges)实现preserve,要求尽量不进行平滑,最好是输出与输入一样;而在梯度比较小的地方,尽量的平滑一下,输入与输出可以有稍大的不同!

那么从这个原理出发,我们来推导双边滤波和引导滤波:
这里写图片描述

对于双边滤波的话,将spatial kernel(也就是gaussian kernel)与range kernel(也就是intensity的相似性权重)分别提取出来,之后合并为bilateral kernel,也就是Gs×Gr,之后与待滤波的输入图像进行卷积滤波,也就得到了滤波后的图像,引入gaussian kernel无可厚非,主要是为了进行平滑滤波,而引入range kernel主要是为了实现上面那句在梯度较大的地方,我们不进行平滑,而梯度较大的地方,那个range kernel Gr比较小,也就是抑制了Gs的作用,实现平坦区域平滑滤波,边沿区域保持的目的!

对于引导和加权最小二乘,都可以直接从最优化手段入手,只不过表现形式不同而已:

min(IinIout)2+λ(regular item)

不同在于regular item以及Iout的设计上。

加权最小二乘直接使用水平方向和竖直方向的梯度作为正则项,惩罚因子,采用矩阵形式进行描述,然后进行推导得到对应的平滑系数,之后直接得到矩阵求逆运算得到Iwls

引导滤波器则是用线性表示的方法得到输出Igif,同样采用上面的最小化方法,不过选择的正则项是线性系数ak。之所以采用线性的表示方法,是出于像素的局部性,局部线性关系肯定是存在的。同时为了保证在边缘地区进行保持,在平坦区域进行平滑的目的,选择线性系数ak作为正则项,如果ak=0,很明显输出直接全平了,如果ak=1bk=0,输入等于输出,很显然边缘完全保持了。这个求解方法让我想起了支撑向量机中的推导过程,也是惩罚项的巧妙设计。所以,最优化函数前面的一项用来保证边缘,而后一项需要用来保证平滑性。也就是说,两者应该是矛盾,前一项大的话,后一项必须被约束很小才行,所以也就是说如果输入与输出相差较大的话,主要发生在ak很小的地方,也就是比较平滑的地方;而输出与输出相差较小的话,主要发生在ak比较大的地方,最大为1,也就是比较不平滑,边缘地方。反过来控制正则项,去考察前面一项也能得到类似的结论。

最后得出的结论从上面总结的可以看出:

1High variance的区域,$a_k$趋向于1$b_k$趋向于0,从而边缘保持;
(2Low variance的区域,$a_k$趋向于0$b_k$趋向于均值,从而进行平滑;

具体的实现,可以参看对应的代码,在E:LabProjectInfraredImageProcessingAlgorithms中都有相关的参考例子。


2016-7-3 20:51
张朋艺 pyzhangbit2010@126.com

原文地址:https://www.cnblogs.com/huty/p/8518470.html