数字图像处理——引导滤波

一、概述

        引导滤波是由何恺明等人于2010年发表在ECCV的文章《Guided Image Filtering》中提出的,后续于2013年发表。引导过滤器根据局部线性模型原理,通过考虑引导图像的内容来计算过滤输出,引导图像可以是输入图像本身或另一个不同的图像。具有以下特点:

  1. 引导滤波器可以像流行的双边滤波器一样用作边缘保留平滑算子,但在边缘附近有更好的效果。
  2. 引导过滤器也是平滑之外的一个更通用的概念:它可以将引导图像的结构传输到过滤输出,从而实现新的过滤应用,例如去雾和引导羽化。
  3. 此外,无论核大小和强度范围如何,引导滤波器自然具有快速且非近似的线性时间算法。目前它是最快的边缘保留滤波器之一。

Research:

  • Wikipedia中指出,引导过滤器是一种具有代表性的边缘保持平滑技术。
  • MATLAB 2014中提供了引导过滤器在这一新函数。
  • OpenCV 3.0中提供了引导过滤器在这一新函数。

Related Publications:

See Also:

Resources:

二、原理

        引导滤波的定义中,用到了局部线性模型,该模型认为,某函数上一点与其邻近部分的点成线性关系,一个复杂的函数就可以用很多局部的线性函数来表示,当需要求该函数上某一点的值时,只需计算所有包含该点的线性函数的值并做平均即可。我们可以将图像看成一个二维函数,因此,而且没法写出解析表达式,因此我们假设该引导滤波函数的输出与输入在一个二维窗口内满足线性关系,如下:

        

        这里p是输入图像 ,I是引导图像 ,q是滤波输出图像, akbk是系数, ωk是窗口。

        对上式两边取梯度,可以得到:

            

        即当引导图像I有梯度时,输出 图像q 也有类似的梯度,现在可以解释为什么引导滤波有边缘保持特性。

         接下来需要计算akbk,我们将输入图像p纳入考虑范围中,根据一般的加性噪声模型,我们很容易得到以下式子:

        

        其中ni表示需要去除的噪声或纹理。

        显然,我们现在要找到一个解能够最小化输出图q和输入图p的差别。定义代价函数如下:

                

         这里,\varepsilon是正则化参数,我们对代价函数求最小值,

        

         令偏导为0,计算得到:

             

         其中pkuk分别是P和I窗口内的均值。 得到bk,我们再求ak

                  根据方差和协方差公式,

                 

           最终计算得到:

                  

三、实现及效果

        引导滤波算法伪代码如下图:

实际测试结果如下:

        

 

        

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沧海一升

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值