导向滤波原理(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

本文链接http://www.dzjqx.cn/news/show-617217.html