从原理上分析,这几种滤波器没有太大的差别,都是基于最基本的思想:在梯度比较大的地方(edges)实现preserve,要求尽量不进行平滑,最好是输出与输入一样;而在梯度比较小的地方,尽量的平滑一下,输入与输出可以有稍大的不同!
那么从这个原理出发,我们来推导双边滤波和引导滤波:
对于双边滤波的话,将spatial kernel(也就是gaussian kernel)与range kernel(也就是intensity的相似性权重)分别提取出来,之后合并为bilateral kernel,也就是
对于引导和加权最小二乘,都可以直接从最优化手段入手,只不过表现形式不同而已:
不同在于
regular item
以及加权最小二乘直接使用水平方向和竖直方向的梯度作为正则项,惩罚因子,采用矩阵形式进行描述,然后进行推导得到对应的平滑系数,之后直接得到矩阵求逆运算得到
引导滤波器则是用线性表示的方法得到输出
最后得出的结论从上面总结的可以看出:
(1)High variance的区域,$a_k$趋向于1,$b_k$趋向于0,从而边缘保持;
(2)Low variance的区域,$a_k$趋向于0,$b_k$趋向于均值,从而进行平滑;
具体的实现,可以参看对应的代码,在E:LabProjectInfraredImageProcessingAlgorithms中都有相关的参考例子。
2016-7-3 20:51
张朋艺 pyzhangbit2010@126.com