双边滤波器cv2.bilateralFilter

article/2025/10/25 13:55:48

双边滤波器cv2.bilateralFilter

双边滤波是综合考虑空间信息和色彩信息的滤波方式,在滤波过程中能够有效地保护图像内的边缘信息,双边滤波在计算某一个像素点的新值时,不仅考虑距离信息(距离越远,权重越小),还考虑色彩信息(色彩差别越大,权重越小)


文章目录

  • 双边滤波器cv2.bilateralFilter
  • 函数介绍
  • 一、对比双边滤波和其他滤波器的处理效果
    • 1、均值滤波效果如下:
    • 2、中值滤波效果如下:
    • 3、高斯滤波效果如下:
    • 4、双边滤波效果如下:
  • 二、双边滤波处理椒盐噪声和高斯噪声
    • 1、为图像添加椒盐噪声
    • 2、为图像添加高斯噪声
    • 3、双边滤波处理效果
  • 三、检测双边滤波函数各参数对处理结果的影响
    • 1、对d参数进行调整
    • 2、对sigmaColor参数进行调整
    • 3、对sigmaSpace参数进行调整


函数介绍

双边滤波器的函数为cv2. bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)

  1. src参数:指代要处理的图像,可以是任意通道数的图像,在处理时能够对各通道独立处理
  2. d参数:这是空间距离参数,表示的是以当前像素点为中心点的直径,这个值一般为正值,当为非正值时会自动从参数 sigmaSpace 计算得到
  3. sigmaColor参数:该值是指在进行滤波处理时选取的颜色差值范围,周围像素点与当前像素点的像素值差值小于这个参数值时,才可参与到当前滤波
  4. sigmaSpace参数:坐标空间中的sigma值
  5. dst参数:函数返回值,默认为空
  6. borderType参数:描述了图像边缘像素点的外插方式,默认为空

一、对比双边滤波和其他滤波器的处理效果

分别使用均值滤波器、高斯滤波器、中值滤波器与双边滤波器做对比,得到如下的结果图,可以很明显地看出双值滤波器的处理结果相较于其他滤波器的结果更加真实,模糊度更低

1、均值滤波效果如下:

盒子滤波

2、中值滤波效果如下:

中值滤波

3、高斯滤波效果如下:

高斯滤波

4、双边滤波效果如下:

双边滤波

二、双边滤波处理椒盐噪声和高斯噪声

1、为图像添加椒盐噪声

代码如下:

def add_sp_noise(image, prob=0.05):img_ = image.copy()thr = 1-probh, w, _ = image.shapefor i in range(h):for j in range(w):rdn = np.random.rand()if rdn < prob:img_[i][j] = 0elif rdn > thr:img_[i][j] = 255return img_

效果如下:

添加椒盐噪声

2、为图像添加高斯噪声

代码如下:

def add_gaussian_noise(image, mean=0, std=0.1):img_ = image.copy()/255.0noise = np.random.normal(mean, std, image.shape)output = np.uint8(np.clip(img_ + noise, 0, 1) * 255)return output

效果如下:

添加高斯噪声


3、双边滤波处理效果

据图可知,双边滤波不能较好的消除椒盐噪声,对于高斯噪声表现较好,或许调整函数的参数到一定程度可能会带来较好的结果

处理椒盐噪声效果如下:

处理椒盐噪声效果

处理高斯噪声效果如下:

处理高斯噪声效果

三、检测双边滤波函数各参数对处理结果的影响

这里只对d, sigmaColor, sigmaSpace这三个参数进行测试

1、对d参数进行调整

固定其他两个参数不变,当增大d时图像变得更加模糊,而减少d则使图像更加清晰,因为d越大考虑的像素点越多,就会造成图像更平滑均匀

增大参数d效果如下:

增加d

减小参数d效果如下:

减小d

2、对sigmaColor参数进行调整

固定其他两个参数不变,当增大sigmaColor时图像变得更加模糊,减少时图像更加清晰,因为该值越大周围有越多的像素点参与到运算中

增大参数sigmaColor效果如下:

增大参数sigmaColor

减小参数sigmaColor效果如下:

减小参数sigmaColor

3、对sigmaSpace参数进行调整

固定其他两个参数不变,当增大和减小sigmaSpace的时候效果差别不明显,但是相较于原图还是存在平滑的效果

增加参数sigmaSpace效果如下:

增加参数sigmaSpace

减小参数sigmaSpace效果如下:

减小参数sigmaSpace


http://chatgpt.dhexx.cn/article/oKumurb6.shtml

相关文章

opencv-双边滤波

一、双边滤波原理 双边滤波&#xff08;Bilateral Filter&#xff09;是非线性滤波中的一种。这是一种结合图像的空间邻近度与像素值相似度的处理办法。在滤波时&#xff0c;该滤波方法同时考虑空间临近信息与颜色相似信息&#xff0c;在滤除噪声、平滑图像的同时&#xff0c;…

Opencv之图像滤波:6.双边滤波(cv2.bilateralFilter)

前面我们介绍的滤波方法都会对图像造成模糊&#xff0c;使得边缘信息变弱或者消失&#xff0c;因此需要一种能够对图像边缘信息进行保留的滤波算法&#xff0c;双边滤波是综合考虑空间信息和色彩信息的滤波方式&#xff0c;在滤波过程中能够有效地保护 图像内的边缘信息。 6.1…

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

双边滤波算法原理&#xff1a; 双边滤波是一种非线性滤波器&#xff0c;它可以达到保持边缘、降噪平滑的效果。和其他滤波原理一样&#xff0c;双边滤波也是采用加权平均的方法&#xff0c;用周边像素亮度值的加权平均代表某个像素的强度&#xff0c;所用的加权平均基于高斯分…

双边滤波的基本原理

双边滤波&#xff08;Bilateral filter&#xff09;是一种非线性的滤波方法&#xff0c;本质是基于高斯滤波&#xff0c;目的是解决高斯滤波造成的边缘模糊。结合图像的空间邻近度和像素值相似度的一种折处理&#xff0c;同时考虑空域信息和灰度相似性&#xff0c;达到保边去噪…

双边滤波算法原理

1. 简介 图像平滑是一个重要的操作&#xff0c;而且有多种成熟的算法。这里主要简单介绍一下Bilateral方法&#xff08;双边滤波&#xff09;&#xff0c;这主要是由于前段时间做了SSAO&#xff0c;需要用bilateral blur 算法进行降噪。Bilateral blur相对于传统的高斯blur来说…

Bilateral Filters(双边滤波算法)原理及实现(一)

双边滤波算法原理 双边滤波是一种非线性滤波器&#xff0c;它可以达到保持边缘、降噪平滑的效果。和其他滤波原理一样&#xff0c;双边滤波也是采用加权平均的方法&#xff0c;用周边像素亮度值的加权平均代表某个像素的强度&#xff0c;所用的加权平均基于高斯分布[1]。最重要…

双边滤波与引导滤波

双边滤波与引导滤波 分类&#xff1a; AI and Computer Vision 2014-03-07 17:04 344人阅读 评论(0) 收藏 举报 图像处理 滤波 双边滤波 双边滤波很有名&#xff0c;使用广泛&#xff0c;简单的说就是一种同时考虑了像素空间差异与强度差异的滤波器&#xff0c;因此具有保持图…

【图像处理】——双边滤波

【fishing-pan&#xff1a;https://blog.csdn.net/u013921430 转载请注明出处】 双边滤波 高斯滤波是最常用的图像去噪方法之一&#xff0c;它能很好地滤除掉图像中随机出现的高斯噪声&#xff0c;但是在之前的博客中提到过&#xff0c;高斯滤波是一种低通滤波&#xff08;有兴…

【八】双边滤波

1.高斯滤波 高斯滤波的定义如下&#xff1a; 其中高斯函数为&#xff1a; 高斯滤波是领域内相邻像素的加权平均&#xff0c;权重值为G(||p-q||)&#xff0c;和均值滤波&#xff0c;中值滤波一样&#xff0c;都是将噪声&#xff08;高频信息&#xff09;滤除&#xff0c;但是边…

双边滤波原理和实现

双边滤波原理 双边滤波&#xff08;Bilateral filter&#xff09;是一种非线性的滤波方法&#xff0c;是结合图像的空间邻近度和像素值相似度的一种折衷处理&#xff0c;同时考虑空域信息和灰度相似性&#xff0c;达到保边去噪的目的。 双边滤波器之所以能够做到在平滑去噪的同…

双边滤波

1 双边滤波简介 双边滤波&#xff08;Bilateral filter&#xff09;是一种非线性的滤波方法&#xff0c;是结合图像的空间邻近度和像素值相似度的一种折衷处理&#xff0c;同时考虑空域信息和灰度相似性&#xff0c;达到保边去噪的目的。具有简单、非迭代、局部的特点。 双边滤…

数字图像处理(九)双边滤波

文章目录 一、何为双边滤波&#xff1f;二、为什么要使用双边滤波&#xff1f;三、双边滤波原理1.空间域核2.值域核3.模板相乘 四、 w d w_d wd​和 w r w_r wr​和 σ \sigma σ的理解五、C代码实现1.opencv中Mat的一点小知识2.关于边界的处理3.双边滤波代码 一、何为双边滤波…

双边滤波(Bilateral Filtering)

双边滤波&#xff08;Bilateral Filtering&#xff09; 1、基本思路 双边滤波&#xff08;Bilateral Filtering&#xff09;的基本思路是同时考虑像素点的空域信息和值域信息。即先根据像素值对要用来进行滤波的邻域做一个分割或分类&#xff0c;再给该点所属的类别相对较高的…

三种经典图像滤波方法介绍——双边滤波(Bilateral filter)、导向滤波(Guided Fliter)、滚动导向滤波(RollingGuidedFilter)

文章目录 一、前言二、双边滤波(Bilateral filter)2.1 双边滤波的理论介绍及公式推导2.2 双边滤波的matlab程序实现 三、导向滤波(Guided Fliter)3.1 导向滤波的理论介绍及公式推导3.2 导向滤波matlab代码实现 四、滚动导向滤波(RollingGuidedFilter)4.1 滚动导向滤波的理论介绍…

图像处理:双边滤波算法

今天主要是回顾一下双边滤波&#xff0c;我曾经在这篇——图像处理&#xff1a;推导五种滤波算法中推导过它&#xff0c;其中包含了我自己写的草稿图。 目录 双边滤波算法原理 &#xff08;1&#xff09;空间域核 &#xff08;2&#xff09;值域核 理解双边滤波 空域权重​…

Bilateral Filters(双边滤波算法)的超简单原理,学不会你打我。

摘要&#xff1a; 双边滤波(Bilateral Filters)是非常常用的一种滤波&#xff0c;它可以达到保持边缘、降噪平滑的效果。和其他滤波原理一样&#xff0c;双边滤波也是采用加权平均的方法&#xff0c;用周边像素亮度值的加权平均代表某个像素的强度&#xff0c;所用的加权平均基…

jQuery源码分析理解

1&#xff1a; 首先我们先来看一下jquery代码的整体结构 代码从16行开始为真正的jquery源码&#xff0c;我们看到Jquery源码第一个()中是定义了一个匿名function( window, undefined ) {}&#xff1b;接着末尾有个(window)&#xff0c;就表示执行这个匿名function&#xff0c;…

jQuery源码分析(一)

jQuery源码分析&#xff08;一&#xff09; 我们知道在jQuery中在使用选择器或者给元素绑定事件的时候都是通过$来操作的。那么基于JavaScript面向对象的思想&#xff0c;我们可以把jQuery看做一个函数或者对象&#xff0c;它里边存储了大量的方法&#xff0c;是一个类库。 $代…

jQuery源码阅读(一)---jQuery源码整体架构

之前用jQuery库写了两个小例子&#xff08;结合Apache、PHP实现的简易聊天室以及音乐播放器&#xff09;&#xff0c;详见我的上两篇博客jQuery aJax技术以及PHP实现简单聊天室、 利用jQuery实现音乐播放器。为了更加深入了解jQuery库的架构以及巩固原生JS的基础和深度&#xf…

jquery源码解析

(function(a,b){})() JQuery源码的开头 (function(a,b){})(window)通常(function(){})()用来封装一些私有成员或者公共成员的导出。 1. 定义一个匿名函数&#xff0c;创建了一个“私有”的命名空间&#xff0c;该命名空间的变量和方法&#xff0c;不会破坏全局的命名空间。确…