双边格网(bilateral grid)

双边滤波速度很慢 —> 加速,双边网格。

首先明确一点,双边网格本质上是一个数据结构。

双边格网(bilateral grid)_第1张图片

以单通道灰度值为例,双边网格结合了图像二维的空间域信息以及一维的灰度信息,可认为其是一个3D的数组。

举一个简单的例子,假设现在你手上有一只用于滤波/平滑的笔刷,当你用这只笔刷在图像 E E E上的某一个位置 ( x , y ) (x,y) (x,y)处点击了一下,对应的,3D双边网格的 ( x , y , E ( x , y ) ) (x,y,E(x,y)) (x,y,E(x,y))位置将出现一个点,这个点即对应你在2D影像 E E E上点击的那个点。随着这只笔刷的移动,3D双边空间中三个维度都会被高斯平滑,那么对于平坦区域而言,灰度变化不大的时候,沿着二维平面进行高斯平滑,则等价于对影像进行高斯滤波;而对于边界区域而言,灰度变化很大,笔刷的高斯衰减范围保证了边界另一边的数值不被影像,因此保留住了边界。

双边格网(bilateral grid)_第2张图片

这个将图像上点击一个点,再投影到3D双边空间的操作,术语称之为splat.

笔刷已经在3D双边空间刷过一遍了,那么如何重建滤波后的影像呢?在双边空间进行插值,术语称之为slice。

打个小总结,双边滤波可以简单的理解为在空间域内考虑到色彩域的信息,综合权重进行滤波,但是直接根据双边滤波权重的公式进行计算的话,常常在速度上令人着急,因此提出了在双边网格上模拟双边滤波的想法,在三维上既能够考虑到色彩域的信息,又能够加快速度。

现在将快速双边滤波的过程简洁的描述为: splat/blur/slice, 也就是在图像上进行采样操作,投影到3D网格上,在3D上进行滤波,再内插出每个 ( x , y ) (x,y) (x,y)上的值,重建出滤波后的影像。

你可能感兴趣的:(#,密集匹配)