导向滤波原理(Guided Filter)的一些剖析和实践

基本理念

在这里插入图片描述
基本思想是:用一张引导图,去指导滤波操作。这张就叫做i(x);
在这里插入图片描述
这个损失函数中,减号前面是:预测输出图像ax+b。减号后面是输入图像g(x)。这里下标x是表示在原图像中的索引,x'表示是邻域的坐标,表示邻域。

在这里插入图片描述
这里对损失函数进行求导,这是在找极小值点,所以令导数等于0,得到最终的形式如上;这二个式子中:黑色标注表示邻域之和,也就是邻域的一阶范数。

在这里插入图片描述
这里先对b求解,最终,b等于原图上的邻域均值,减去a乘以引导图中的邻域均值
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这里求解a,最终,a等于原图和引导图的邻域相关系数除以引导图的邻域方差。当然如果引导图就是原图的话,那就是引导图的方差除以引导图的方差。

  • 如果方差较小,即是一个平滑区域的话,那么方差较小约等于0,则ak约等于方差除以epsilon,因此 ak 约等于 0 。那么bk约等于1,那么qi =mean(p),这样相当于说这个pixel在该窗口内的输出值相当于在这个窗口进行了均值平滑,而考虑到pixel属于多个窗口,如果这是一个平滑区域,那么就相当与多个均值平滑滤波器的级联。
  • 如果方差大,即是边缘的话,ak 就约等于 1(epsilon很小),因此,b就约等于0。相当于输出等于输入只是乘以一个约等于1的系数,这样可以保证梯度的比例关系不变。

在这里插入图片描述

算法实现

在这里插入图片描述
在这里插入图片描述
在算法实现上,可以用前缀和,加速运算速度。

运行结果:
在这里插入图片描述
在这里插入图片描述

参考:

  1. 知乎:导向滤波原理(Guided Filter)
  2. CSDN博客:双边滤波与引导滤波
  3. youtube课件来源Interventional Medical Image Processing (IMIP 2016) - Lecture 6
  4. 详细公式推导
  5. opencv实现base on cpp
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值