引导滤波算法理论及公式的推导

2021/8/1 1:06:04

本文主要是介绍引导滤波算法理论及公式的推导,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

        高斯滤波考虑了像素间的距离关系,会模糊边缘;

        双边滤波同时考虑了像素间的距离关系以及相似度关系,对于边缘有一定的保护(边缘同侧相速度高)。引导滤波同样是保边滤波,由于直接判断梯度,细节的保护上比双边滤波要好一点。

        引导滤波用到了局部线性模型,该模型可用下图简单的理解:

        该模型认为,某函数上一点与其邻近部分的点成线性关系,一个复杂的函数就可以用很多局部的线性函数来表示,当需要求该函数上某一点的值时,只需计算所有包含该点的线性函数的值并做平均即可。这种模型,在表示非解析函数上,非常有用。

        上述部分也就是下图,梯度变化就是边缘的地方,同一个图像原图和滤波后的图梯度应该保持一致,才能有效的保护边缘。所以引导图意义在于告诉我们,哪里是平滑区域,哪里是边缘区域,如求得a、b,就可以得到滤波输出。

        由上,得到如下公式:

        详细推导:https://blog.csdn.net/weixin_43194305/article/details/88959183

        关于最小二乘法数学理论,请参考如下链接,我也是恶补后才有所回忆的,https://www.matongxue.com/madocs/818/

matongxue网站对最小二乘法的理论分析,真的写的很好!法国数学家,阿德里安-馬里·勒讓德提出让总的误差的平方最小的结果就是真值,这是基于,如果误差是随机的,应该围绕真值上下波动(如果误差是正态分布,那么最小二乘法得到的就是最有可能的值——这是必然的)。

        当引导滤波作为边缘保持滤波时,引导图就是本身,即I=p,则上述公式升级:

         另外,即为滤波强度系数:

        继续分析,看看引导滤波的相关代码如下所示(盒式滤波是加速的关键):

 

        最后,回到何凯明博士的paper《Guided Image Filtering》中,借鉴相关结论。首先可以看到引导滤波相对双边滤波,对于边缘的保护确实好了很多。具体到测试图中,可见双突滤波虽然保护了边缘,但会引起白/黑边,而导向滤波则不会。虽然计算量大了很多,但是对于图像效果的提升,还是很显著,怪不得何博士一举成名。

        至于如何FPGA加速运算,涉及并行思维,后续独立成篇,详见下一篇文章

参考文章:

https://www.pianshen.com/article/65711567000/

https://blog.csdn.net/weixin_43194305/article/details/88959183

https://blog.csdn.net/pi9nc/article/details/26592377

https://blog.csdn.net/piaoxuezhong/article/details/78372787

        成也FPGA,败也FPGA;

        FPGA图像算法加速,我将持续的跟大家分享架构思维,愿能畅所欲言。



这篇关于引导滤波算法理论及公式的推导的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程