浅析bilateral filter双边滤波器的理解
1.双边滤波(Bilateralfilter)的原理
双边滤波器之所以能够做到在平滑去噪的同时还能够很好的保存边缘(EdgePreserve),是由于其滤波器的核由两个函数生成:空间域核和值域核
(1)空间域核:由像素位置欧式距离决定的模板权值
为模板窗口的中心坐标点;
为高斯函数的标准差。使用该公式生成的滤波器模板和高斯滤波器使用的模板是没有区别的。
在一些博客和教程里,这个权值
(2)值域核:由像素值的差值决定的模板权值
其中,
一般将权值
(3)将上述两个模板相乘就得到了双边滤波器的模板权值:
因此,双边滤波器的数据公式可以表示如下:
2.双边滤波(Bilateralfilter)理解
双边滤波(Bilateralfilter)其综合了高斯滤波器(GaussianFilter)和α-截尾均值滤波器(Alpha-TrimmedmeanFilter)的特点,同时考虑了空间域与值域的差别,而GaussianFilter和α均值滤波分别只考虑了空间域和值域差别。高斯滤波器只考虑像素间的欧式距离,其使用的模板系数随着和窗口中心的距离增大而减小;α-截尾均值滤波器则只考虑了像素灰度值之间的差值,去掉α%的最小值和最大值后再计算均值。
2.1空域权重
空域权重
值域权重
这里从图像的平坦区域和边缘区域定性分析双边滤波的降噪效果
- 在平坦区域,临近像素的像素值的差值较小,对应值域权重
接近于1,此时空域权重 起主要作用,相当于直接对此区域进行高斯模糊。因此,平坦区域相当于进行高斯模糊。 - 在边缘区域,临近像素的像素值的差值较大,对应值域权重
接近于0,导致此处核函数下降(因 ),当前像素受到的影响就越小,从而保持了原始图像的边缘的细节信息。
3.Opencv双边滤波函数:
opencv中提供了bilateralFilter()函数来实现双边滤波操作,其原型如下:
voidcv::bilateralFilter(InputArraysrc, OutputArray dst, int d, double sigmaColor, double sigmaSpace, int borderType=BORDER_DEFAULT )
InputArraysrc:输入图像,可以是Mat类型,图像必须是8位或浮点型单通道、三通道的图像。
- OutputArraydst:输出图像,和原图像有相同的尺寸和类型。
- intd:表示在过滤过程中每个像素邻域的直径范围。如果这个值是非正数,则函数会从第五个参数sigmaSpace计算该值。
- doublesigmaColor:颜色空间过滤器的sigma值,这个参数的值月大,表明该像素邻域内有越宽广的颜色会被混合到一起,产生较大的半相等颜色区域。(这个参数可以理解为值域核
的 ) - doublesigmaSpace:坐标空间中滤波器的sigma值,如果该值较大,则意味着越远的像素将相互影响,从而使更大的区域中足够相似的颜色获取相同的颜色。当d>0时,d指定了邻域大小且与sigmaSpace无关,否则d正比于sigmaSpace.(这个参数可以理解为空间域核
的 ) - intborderType=BORDER_DEFAULT:用于推断图像外部像素的某种边界模式,有默认值BORDER_DEFAULT.
双边滤波器可以很好的保存图像边缘细节而滤除掉低频分量的噪音,但是双边滤波器的效率不是太高,花费的时间相较于其他滤波器而言也比较长。
对于简单的滤波而言,可以将两个sigma值设置成相同的值,如果值<10,则对滤波器影响很小,如果值>150则会对滤波器产生较大的影响,会使图片看起来像卡通。
示例代码:
#include#include #include #include usingnamespacestd; usingnamespacecv; //定义全局变量 constintg_ndMaxValue=100; constintg_nsigmaColorMaxValue=200; constintg_nsigmaSpaceMaxValue=200; intg_ndValue; intg_nsigmaColorValue; intg_nsigmaSpaceValue; Matg_srcImage; Matg_dstImage; //定义回调函数 voidon_bilateralFilterTrackbar(int,void*); intmain() { g_srcImage=imread("lena.jpg"); //判断图像是否加载成功 if(g_srcImage.empty()) { cout<<"图像加载失败!"<
【尊重原创,转载请注明出处】:https://blog.csdn.net/guyuealian/article/details/82660826
参考资料:
【1】https://www.cnblogs.com/wangguchangqing/p/6416401.html
【2】https://blog.csdn.net/MoFMan/article/details/77482794
到此这篇关于bilateralfilter双边滤波器的通俗理解的文章就介绍到这了,更多相关bilateralfilter双边滤波器内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。