双边滤波原理(Bilateral Filtering)

基本思路

双边滤波(bilateral filtering)的基本思路是同时考虑将要被滤波的像素点的空域信息(domain)和值域信息(range)。因此是一种 combined 滤波方式,因此叫做 bilateral ,即同时考虑两方面的信息。首先,对于图像滤波来说,一个通常的intuition是:(自然)图像在空间中变化缓慢,因此相邻的像素点会更相近。但是这个假设在图像的边缘处变得不成立。如果在边缘处也用这种思路来进行滤波的话,即认为相邻相近,则得到的结果必然会模糊掉边缘,这是不吼的,因此考虑再利用像素点的值的大小进行补充,因为边缘两侧的点的像素值差别很大,因此会使得其加权的时候权重具有很大的差别,从而使得只考虑自己所属的一边的邻域。可以理解成先根据像素值对要用来进行滤波的邻域做一个分割或分类,再给该点所属的类别相对较高的权重,然后进行邻域加权求和,得到最终结果。

实现原理

在 bilateral filtering 中,两个要素即:closeness 和 similarity ,或者说 domain 和 range ,或者 geometric 和 photometric ,其数学表达方式相近,如下:

![这里写图片描述](https://img-blog.csdn.net/20171218223053815?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWRvZ2F3YWNoaWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) ![这里写图片描述](https://img-blog.csdn.net/20171218224419445?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWRvZ2F3YWNoaWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 其中积分号前面为归一化因子,这里考虑对所有的像素点进行加权,c 和 s 是 closeness 和 similarity 函数,x 代表要求的点,f (x) 代表该点的像素值。f(x) --> h(x) 为滤波前后的image。我们最后的滤波函数为 ![这里写图片描述](https://img-blog.csdn.net/20171218224501890?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWRvZ2F3YWNoaWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

由于domain component,使得滤波特性较好,由于range component,使得crisp edge 可以保持。

下图示意了有边缘的时候的权重和最后的滤波结果,可以看出权重在边界有很明显的分界,从而几乎只对自己所属的边缘一侧的像素点进行加权。

![这里写图片描述](https://img-blog.csdn.net/20171218224730289?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWRvZ2F3YWNoaWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

实现 c 和 s 两个函数的一种方法即 Gaussian 核,决定其性质的为各自的sigma参数,即 $ \sigma_d $ 和 σ r \sigma_r σr​ 。

![这里写图片描述](https://img-blog.csdn.net/20171218224552739?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWRvZ2F3YWNoaWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) ![这里写图片描述](https://img-blog.csdn.net/20171218224610185?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWRvZ2F3YWNoaWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

参数讨论

对于空域的 Gaussian 滤波不需要继续解释,对于 Range Filtering ,即不考虑空间只考虑像素点的相似性进行加权的结果,作者进行分析,得到结论,值域滤波只是对待滤波的图像的直方图的一个变换,而对于单峰的(unimodal)的直方图,range filtering 将值域范围向着峰的中间即均值方向压缩。

对于参数的选取,进行如下讨论:

首先,两个 sigma 值为 kernel 的方差,方差越大,说明权重差别越小,因此表示不强调这一因素的影响,反之,则表示更强调这一因素导致的权重的不均衡。因此:

  • 两个方面的某个的 sigma 相对变小 表示这一方面相对较重要,得到强调。如 sigma_d 变小,表示更多采用近邻的值作平滑,说明图像的空间信息更重要,即相近相似。如 sigma_r 变小,表示和自己同一类的条件变得苛刻,从而强调值域的相似性。

其次,sigma_d 表示的是空域的平滑,因此对于没有边缘的,变化慢的部分更适合;sigma_r 表示值域的差别,因此强调这一差别,即减小 sigma_r 可以突出边缘。

  • sigma_d 变大,图像每个区域的权重基本都源于值域滤波的权重,因此对于空间邻域信息不是很敏感;sigma_r 变大,则不太考虑值域,权重多来自于空间距离,因此近似于普通的高斯滤波,图像的保边性能下降。因此如果像更多的去除平滑区域的噪声,应该提高 sigma_d ,如果像保持边缘,则应该减小 sigma_r 。
  • 极端情况,如果 sigma_d 无穷大,相当于值域滤波;sigma_r 无穷大,相当于空域高斯滤波。

![这里写图片描述](https://img-blog.csdn.net/20171218224823528?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWRvZ2F3YWNoaWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

其它

对于彩色图片,由于两种颜色中可能有其他完全不同的颜色,因此不像灰度图那样,仅仅是 blurred ,而是会产生 auras like 的奇怪的晕圈,所以在双边滤波的过程中,将RGB转换到 CIE-Lab 色彩空间,这个空间与人的主管色彩辨识能力相关,因此可以改善这一缺陷。

THE END

2017/12/18 Mon 22:27

reference:

Tomasi C, Manduchi R. Bilateral filtering for gray and color images” ICCV[J]. Iccv, 1998:839 - 846.

双边滤波原理(Bilateral Filtering)相关推荐

  1. 数字图像处理论文解读- 双边滤波效果 - Bilateral Filtering for Gray and Color Image

    一.有效性 双边滤波通过高斯低筒计算领域像素值的加权平均,而权值的设定是随距离中心点而减小的,因此图像在空间上变化缓慢,附近可能会有相似的值,通过平均那么附近的噪声就会被均衡化. 双边滤波效果与标准过 ...

  2. 双边滤波原理与参数的理解+双边滤波matlab实现

    基本思路 高斯滤波是一种常用而且简单的降噪算法.但其缺点也很明显,就是会不加区分地将噪声与图像边缘等细节一起平滑处理. 而双边滤波是基于高斯滤波进行改进的方法.在高斯滤波的基础上,双边滤波引入了像素值 ...

  3. 双边滤波(Bilateral Filter)详解

    双边滤波(Bilateral Filter)详解 转自:睁开眼就变帅 原理分析: 双边滤波与高斯滤波器相比,对于图像的边缘信息能过更好的保存.其原理为一个与空间距离相关的高斯函数与一个灰度距离相关的高 ...

  4. opencv 双边滤波算法(Bilateral Filters)原理及实现

    双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空间与信息和灰度相似性,达到保边去噪的目的,具有简单.非迭代.局部处理的特点.之所以能够达到保边去噪的滤波效 ...

  5. 双边滤波(Bilateral filter)

    双边滤波器(Bilateral filter)是一种可以保边去噪的滤波器.可以滤除图像数据中的噪声,且还会保留住图像的边缘.纹理等(因噪声是高频信号,边缘.纹理也是高频信息,高斯滤波会在滤除噪声的同时 ...

  6. 高斯滤波与双边滤波原理、MATLAB实现及结果对照

    本文详细介绍高斯滤波和双边滤波的原理并给出MATLAB实现,最后对照高斯滤波与双边滤波的效果. 目录 一.滤波原理 1.1 一维高斯分布 1.2 二维高斯分布 1.3 高斯滤波总结 二.双边滤波 1. ...

  7. 联合双边滤波-Joint Bilateral Filter

    1. 回顾: 双边滤波(BF) 具体参考上篇博客:图像滤波之双边滤波 2. 联合双边滤波(JBF) 联合双边滤波与双边滤波之间的差别就是JBF用了一个引导图作为值域权重的计算依据,但是空间域权重计算仍 ...

  8. 中值滤波,均值滤波,高斯滤波,双边滤波,联合双边滤波介绍

    看GAMES202相关课程发现闫老师讲的太好了,所以记录一下.当然文中涉及的PPT也来自闫老师的课程PPT,欢迎交流. 首先这几种都是空域的滤波方式,用于抑制图像中的噪声.它们采用的原理基本都是通过滤 ...

  9. Joint Bilateral Filtering 双边滤波

    标签: bilateralfiltering 双边滤波   双边滤波是以高斯滤波为基础,引入色度差异后的改进.滤波器卷积窗加权权值同时考虑了空间和色度的二维特征差异. wiki:   http://z ...

最新文章

  1. mysql innodb 设置,Mysql5.5 InnoDB存储引擎简单设置
  2. [linux内核][linux中断]——软中断机制
  3. windows7 64位机上CUDA7.0配置及在VS2010中的简单使用举例
  4. 通过测试想到的一些问题
  5. cmd窗口快速定位到具体文件夹方法
  6. 华为eudemon 200E的hrp双心跳热备配置
  7. Intel® Nehalem/Westmere架构/微架构/流水线 (1) - 特性概述
  8. 谷歌爆苹果 Image I/O 存重大漏洞,无辜用户躺枪
  9. 解除mysql只有本机可以访问的限制
  10. vue基础之指令(内置指令,自定义指令,指令的生命周期函数)
  11. Android屏幕共享-基于WebRTC实现
  12. DEAP 框架(遗传算法)模块笔记
  13. 利用matlab导入数据+命令行 快速选取excel部分内容
  14. USB数据采集卡关于高电压数据采集提供的解决方案
  15. linux 更新系统时间
  16. 八层高速PCB板叠层设计
  17. word2016 明明设置了默认粘贴为“仅保留文本”,可是每次粘贴的时候还是带源格式怎么办?
  18. IDEAD中如何使用scala
  19. shell编程-运算符-环境变量-变量类型声明
  20. lte接口流程图_LTE信令流程图(端到端平台)[技术学习]

热门文章

  1. abaqus应力值导出并进行后处理(同一节点多个应力值如何处理?)
  2. matlab 方差计算
  3. HDU - 1431 素数回文 【素数打表】+【判断回文】
  4. Python遇到过得text和text()
  5. Callable和Runnable的区别
  6. Linux下Socket编程之TCP Server端
  7. vim + vundle + YCM+自动格式化
  8. 基于android的旅游app毕设,安卓157旅游记忆(app+server)
  9. 【最佳实践】gorm 联表查询 joins
  10. UNITY 2D入门基础教程 (一)