zoukankan      html  css  js  c++  java
  • 【图像处理】三种边缘保持的滤波器(双边,引导,加权最小二乘)

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

    从原理上分析,这几种滤波器没有太大的差别,都是基于最基本的思想:在梯度比较大的地方(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

  • 相关阅读:
    AngularJS Insert Update Delete Using PHP MySQL
    Simple task manager application using AngularJS PHP MySQL
    AngularJS MySQL and Bootstrap Shopping List Tutorial
    Starting out with Node.js and AngularJS
    AngularJS CRUD Example with PHP, MySQL and Material Design
    How to install KVM on Fedora 22
    Fake_AP模式下的Easy-Creds浅析
    河南公务员写古文辞职信
    AI
    政协委员:最大愿望是让小学生步行上学
  • 原文地址:https://www.cnblogs.com/huty/p/8518471.html
Copyright © 2011-2022 走看看