平滑滤波器模板尺寸与平滑效果的关系_作业5 双边滤波器

c5e5a4bc9513270b41fbad1988e95ce8.png

一、实验原理

双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。具有简单、非迭代、局部的特点。
双边滤波器的好处是可以做边缘保存(edge preserving),一般用高斯滤波去降噪,会较明显地模糊边缘,对于高频细节的保护效果并不明显。双边滤波器顾名思义比高斯滤波多了一个高斯方差sigma-d,它是基于空间分布的高斯滤波函数,所以在边缘附近,离的较远的像素不会太多影响到边缘上的像素值,这样就保证了边缘附近像素值的保存。但是由于保存了过多的高频信息,对于彩色图像里的高频噪声,双边滤波器不能够干净的滤掉,只能够对于低频信息进行较好的滤波。

下图是双边滤波的原理示意图:

b6b1c059b160657b33deb35e6177f677.png

在双边滤波器中,输出像素的值依赖于邻域像素值的加权值组合:

b36ac85c6257fcfaae71cce015ba1304.png

而加权系数w(i,j,k,l)取决于空域核和值域核的乘积。(i,j),(k,l)分别指两个像素点的坐标。

其中空域核表示如下(如图):

362859f65480848c229c57e51b05804d.png

值域核表示为:

3a15d5fa6f4bd036e3bc9e7634241d41.png


两者相乘后,就会产生依赖于数据的双边滤波权重函数:

cd461f525a094c5f27965e5641bc7eb2.png

d函数是根据像素距离选择权重,距离越近权重越大,这一点和方框滤波,高斯滤波方式相同。而r函数则是根据像素的差异来分配权值。如果两个像素值越接近,即使相距较远,也比差异大而距离近的像素点权重大。正是r函数的作用,使得边缘,即相距近但差异大的像素点的特性得以保留。

二、实验任务

aac6c30dffa88ee89db4607e43b11a1b.png

三、实验步骤

3.1 下面是我自己用函数实现的双边滤波器。

6bdedb7c38194fc0d35400769b0737fa.png

参数:

  • 第一个参数,image,输入图像,即源图像,需要单通道图像。
  • 第二个参数,diameter,表示在过滤过程中每个像素邻域的直径。
  • 第三个参数,sigma_i,颜色空间滤波器的sigma值。这个参数的值越大,就表明该像素邻域内有更宽广的颜色会被混合到一起,产生较大的半相等颜色区域。
  • 第四个参数,sigma_s, sigmaSpace坐标空间中滤波器的sigma值,坐标空间的标注方差。他的数值越大,意味着越远的像素会相互影响,从而使更大的区域足够相似的颜色获取相同的颜色。

3.2 实验结果对比。

ba0cccb981fd665204dda5460e295430.png
原图

a63b021604ab6d56b38bf863f14eeb26.png
灰度图

参数设置:7, 20.0, 20.0,结果如下:

1022aa9f4dc98c070936071da36bbac1.png
系统自带滤波器

89d9f7566547ccdb043b01c181489db8.png
自己设计滤波器

可以看opencv出自带的的双边滤波器滤波效果很好,既滤除了噪声,同时保留了边缘,自己设计的滤波器效果差一些

参数设置:7,120.0,120.0

f73c0aa4b7d7e5ae48d61870f46ba5b9.png
自带滤波器

8eb0dfc03c0d3d0f4917cb7dc5dc30f7.png
自己设计滤波器

可以看出随着sigma参数增大,图像开始变得模糊。

参数设置:10, 20.0, 20.0

76cbadaceef81eed8c2407593db845c9.png
自带滤波器

1198ccfb31809c7dcd98b20547e79d84.png
自己设计滤波器

参数设置:20,20.0,20.0

6f28901de2a0125cf600f043bd121488.png
自带滤波器

24412f9785fd3648ec3548cbe17b49b7.png
自己设计滤波器

滤波器尺寸d:大于20程序运行将较慢,d 是像素邻域,直径可以看出随着diameter参数增大,sigma参数不变的话,对图像影响较小。

参数设置:20,200.0,200.0

4c32226da6ad9525b162a5fcc14e5b62.png
自带滤波器

d50ae1b7a0d93f09bd53675d02e40ce4.png
自己设计滤波器

如果diameter与sigma值同时变大,图像将被平滑,更加模糊。

3.3实验代码:

https://github.com/zigangzhao-ai/Bilateral-filter

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值