本文主要是介绍[DIP] 引导滤波(guided Filter),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
引导滤波算法是一种可以保持边缘的一种滤波算法。引导滤波之所以叫这个名字,是因为算法在进行滤波时需要一幅引导图像,引导图像可以是另外单独的图像,也可以是输入图像本身,当引导图为输入图像本身时,引导滤波就成为一个保持边缘的滤波操作。引导滤波可以用于降噪、细节平滑、HDR压缩、抠图、去雾以及联合采样等领域。
线性旋转变化滤波过程中,某像素点的输出为:
(1)
Wij为权重,在双边滤波中,其权重函数表示为:
(2)
而这里要说的引导滤波,某像素点的输出结果为:
(3)
其中,q 为输出图像,I 为引导图像,a 和 b 是当窗口中心位于 k 时该线性函数的不变系数。该方法的假定条件是: q 与 I 在以像素 k 为中心的窗口中存在局部线性关系。对式子(3)求导(即表示边缘)可以看出,只有当引导图像存在边缘时,输出结果才会出现边缘。为了求解(3)中的系数a和b,假设p是q滤波前的结果,并满足使得q与p的差别最小,根据无约束图像复原的方法可以转化为求最优化问题,其价值函数为(4):
(n为噪声,p是q受到噪声n污染的退化图像)
(4)
限制i在窗口w中,这样a值就不会出现太大的情况了。类似于最下二乘法求解,式(4)的解为:
其中,μ和σ^2分别表示I在局部窗口w中的均值和方差。|ω|是窗口内的像素个数。然后,在整幅图像内采取窗口操作,最后取均值可以得到式(3)的结果为:
(5)
其中
总结:引导图像I与q之间存在线性关系,这样设定可以使导引图像提供的信息主要用于指示哪些是边缘。如果引导图告诉我们这里是边缘,最终的结果就设法保留这些边缘信息。所以,引导滤波的前提条件是:当I和q满足线性关系才有意义。
引导滤波的算法伪代码:
这篇关于[DIP] 引导滤波(guided Filter)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!