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

article/2025/10/26 0:23:49

基本思路

高斯滤波是一种常用而且简单的降噪算法。但其缺点也很明显,就是会不加区分地将噪声与图像边缘等细节一起平滑处理。

而双边滤波是基于高斯滤波进行改进的方法。在高斯滤波的基础上,双边滤波引入了像素值相似性的权值,使得滤波的结果不仅能够平滑图像,还能保留边缘。

对一幅图像,在平坦的地方像素变化程度较小,用高斯滤波降噪可以取得不错的效果。但是在边缘处,往往会出现剧烈的像素值变化,这时候考虑到边缘两侧的像素值应该是有很大不同的,所以引入像素值相似性权重。即,在一个区域S内,一条边缘将S划分为两部分A和B,A和B的像素值整体差距较大。在做降噪处理时,则把更多的权重倾斜到与中心点相似的区域。如果中心点在AB交界处,但是在A内,则A内的像素点会更多贡献给该点像素值的计算。而B内的像素点则贡献较小。

综上可知,与高斯滤波一样,其基本思想就是通过权值来控制某一个点周边像素值对该点像素值的贡献值。在双边滤波中,考虑了两项权值:距离和相似性。距离即是像素点与中心点的欧式距离,而相似性则是像素点值与中心点值的差值。基于以上思想,得到如下公式:
I ‾ ( p ) = 1 W p ∑ q ∈ S G c ( ∣ ∣ p − q ∣ ∣ ) G s ( ∣ I ( p ) − I ( q ) ∣ ) I ( q ) \overline I(p)=\frac{1}{W_p}\sum_{q\in S}G_c(||p-q||)G_s(|I(p)-I(q)|)I(q) I(p)=Wp1qSGc(∣∣pq∣∣)Gs(I(p)I(q))I(q)
其中:
W p = ∑ q ∈ S G c ( ∣ ∣ p − q ∣ ∣ ) G s ( ∣ I ( p ) − I ( q ) ∣ ) W_p=\sum_{q\in S}G_c(||p-q||)G_s(|I(p)-I(q)|) Wp=qSGc(∣∣pq∣∣)Gs(I(p)I(q))
p为需要计算像素值的中心点,S为卷积核覆盖的区域, I ‾ ( p ) \overline I(p) I(p)为计算出的像素值, I ( p ) I(p) I(p)为中心点原始像素值, I ( q ) I(q) I(q)为区域内某个点的像素值, G c G_c Gc G s G_s Gs分别代表距离权值和相似权值。如果我们用(x, y)表示p的坐标,(i, j)表示q的坐标,基于二维高斯函数,则有:
G c = e ( − ( x − i ) 2 + ( y − j ) 2 2 σ c 2 ) G s = e ( − ( I ( p ) − I ( q ) ) 2 2 σ s 2 ) G_c=e^{(-\frac{(x-i)^2+(y-j)^2}{2\sigma_c^2})}\\ G_s=e^{(-\frac{(I(p)-I(q))^2}{2\sigma_s^2})}\\ Gc=e(2σc2(xi)2+(yj)2)Gs=e(2σs2(I(p)I(q))2)
σ c \sigma_c σc σ s \sigma_s σs则分别代表两个标准差。

值得注意的是,在高斯滤波中,相比于标准差小的时候,标准差增大会使得距离中心远的点的权重增加,这一性质由高斯函数决定:当标准差减小时,高斯函数的图像会变得更加平坦。而在双边滤波中,不论是空间标准差还是相似标准差,其增大时,同样在空间域或者值域上体现出相似效果,即标准差越大,与中心点距离远(不相似)的点的权重越大。

同时,方差越大,说明权重差别越小,因此表示不强调这一因素的影响,反之,则表示更强调这一因素导致的权重的不均衡。因此两个方面的某个的方差相对变小 表示这一方面相对较重要,得到强调。如 σ c \sigma_c σc变小,表示更多采用近邻的值作平滑,说明图像的空间信息更重要,即相近相似。如 σ r \sigma_r σr变小,表示和自己同一类的条件变得苛刻,从而强调值域的相似性。而如果 σ r \sigma_r σr趋向无限大,则双边滤波近似退化为高斯滤波。

代码实现

基于以上思想,我尝试使用matlab实现双边滤波

function out=bifilter(ksize,sigmac,sigmas,in)
% 三个参数分别指定kernel size、空间域的标准差、值域的标准差和原始图像[h,w,d]=size(in);
% 获取输入图像三个维度的大小,用于之后的处理及判断[X,Y]=meshgrid(1:ksize,1:ksize);
dist=(X-ceil(ksize/2)).^2+(Y-ceil(ksize/2)).^2;
Gc=exp(-dist/2/sigmac^2);
% 根据kernel size直接算出空间域的距离矩阵,即空间权值,方便之后调用,省去重复计算if d==1
% 判断图像是rgb图像还是灰度图像
% 灰度图像直接处理即可,rgb图像需要分三次处理im=in;padim=padarray(im,[floor(ksize/2),floor(ksize/2)],0,'both');% 根据kernel size对图像边界做扩展,补零for i=1:hfor j=1:wtemp=double(padim(i:i+ksize-1,j:j+ksize-1));% 取出要处理的块Gs=exp(-(temp-temp(ceil(ksize/2),ceil(ksize/2))).^2/2/sigmas^2);% 计算相似权值Wp=sum(sum(Gc.*Gs));% 计算总权值,用于归一化out(i,j)=sum(sum(Gc.*Gs.*temp))/Wp;% 计算输出像素值endendelse
% 以下与之前内容相似,分三次分别处理三个通道的图像即可for k=1:dim=in(:,:,k);padim=padarray(im,[floor(ksize/2),floor(ksize/2)],0,'both');for i=1:hfor j=1:wtemp=double(padim(i:i+ksize-1,j:j+ksize-1));Gs=exp(-(temp-temp(ceil(ksize/2),ceil(ksize/2))).^2/2/sigmas^2);Wp=sum(sum(Gc.*Gs));out(i,j,k)=sum(sum(Gc.*Gs.*temp))/Wp;endendend
endout=uint8(out);
% 类型转换
end

效果演示

空间域效果

原图整体偏暗,所以我先对原图用gamma函数进行处理

在这里插入图片描述

在对比度处理的基础上,我先使用matlab自带的高斯滤波和双边滤波进行了处理。

可以看到高斯滤波后的图像较为模糊,而双边滤波后的图像整体更加清晰,同时有一定的降噪效果。

在这里插入图片描述

对比我自己实现的双边滤波与matlab自带的双边滤波,都实现了减少噪点且保留细节的目标。因为我自己的函数,输入的标准差比matlab默认的更大,所以相对而言平滑的效果更加明显。

在这里插入图片描述

同时我也实现了高斯滤波,与自己实现的双边滤波对比,整体较为模糊,还是双边滤波效果比较理想。

在这里插入图片描述

频域效果

原始图像频谱取对数后如下(以下所有频谱都是对数处理后的频谱)

在这里插入图片描述

可以看到高斯滤波类似于一个低通滤波器,将高频成分大部分滤除,主要保留低频成分

在这里插入图片描述

双边滤波则并不是简单把高频滤除保留低频,滤波后的频谱图与保留着与原始频谱相似的特征,但也滤去了一些成分,其中既有高频也有低频。

在这里插入图片描述
参考以下文章,帮助我理解了很多
Bilateral Filters(双边滤波算法)的超简单原理,学不会你打我。_一蓑烟雨任平生~的博客-CSDN博客_双边滤波

双边滤波——原理及matlab实现_l_eop的博客-CSDN博客_双边滤波matlab

双边滤波原理(Bilateral Filtering) - 知乎 (zhihu.com)

简明扼要高斯函数 - 知乎 (zhihu.com)


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

相关文章

双边滤波(Bilateral filter)原理介绍及matlab程序实现

双边滤波 1、原理介绍 双边滤波由C. Tomasi在1998年提出,是一种经典的非线性空间滤波方法。在滤波器稀疏的制定上,双边滤波同时考虑到了输出像素与邻域内其它像素的欧氏距离和取值的差异,即:同时考虑到了空间域和值域间的差别。…

双边滤波器的原理及实现

双边滤波器是什么? 双边滤波(Bilateral filter)是一种可以保边去噪的滤波器。之所以可以达到此去噪效果,是因为滤波器是由两个函数构成。一个函数是由几何空间距离决定滤波器系数。另一个由像素差值决定滤波器系数。可以与其相比较的两个filter:高斯低通滤波器(http://en…

双边滤波原理浅析

前言 双边滤波(Bilateral filtering)是一种结合了图像像素空间位置关系和像素值大小的非线性组合的保边滤波算法,无需迭代计算,操作简单。从原理上讲,图像领域的滤波通常意义是希望去除噪声,使图像更加平滑…

双边滤波(Bilateral Filter)详解

原理分析: 双边滤波与高斯滤波器相比,对于图像的边缘信息能过更好的保存。其原理为一个与空间距离相关的高斯函数与一个灰度距离相关的高斯函数相乘。 空间距离:指的是当前点与中心点的欧式距离。空间域高斯函数其数学形式为: 其中(xi,yi)为当前点位置,(xc,yc)为中心点…

双边滤波和双边网格

双边滤波 双边滤波器也是一种保边滤波器.和导向图滤波器一样,可以达到在平坦区域进行均值(高斯)滤波的效果,在边缘不进行滤波的效果.其原理为一个与空间距离相关的高斯函数与一个灰度距离相关的高斯函数相…

bilateral filter双边滤波器的通俗理解

bilateral filter双边滤波器的通俗理解 图像去噪的方法很多,如中值滤波,高斯滤波,维纳滤波等等。但这些降噪方法容易模糊图片的边缘细节,对于高频细节的保护效果并不明显。相比较而言,bilateral filter双边滤波器可以很…

Bilateral Filtering(双边滤波) for SSAO

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

双边滤波与高斯滤波

高斯滤波原理 在数字图像中的高斯噪声主要来源出现在采集期间。由于不良照明或高温引起的传感器噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。高斯滤波器是一种线性滤波器,…

双边滤波(bilateral filter)以及联合双边滤波(joint bilateral filter)

文章目录 双边滤波理论公式代码(C)数学辅助理解 联合双边滤波(joint bilateral filter)参考链接 写在最后 双边滤波 自用备忘,若侵则删。 理论公式 利用二维高斯函数生成空间域核,一维高斯函数生成颜色域…

双边滤波(Bilateral filter)

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

双边滤波器cv2.bilateralFilter

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

opencv-双边滤波

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

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

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

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

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

双边滤波的基本原理

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

双边滤波算法原理

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

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

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

双边滤波与引导滤波

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

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

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

【八】双边滤波

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