当前位置:首页 > 代码 > 正文

双边滤波c代码(双边滤波算法原理)

admin 发布:2022-12-19 20:56 121


本篇文章给大家谈谈双边滤波c代码,以及双边滤波算法原理对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

bilateralFilter(双边滤波操作)

双边滤波 (Bilateral filter)是一种非线性的滤波方法,是结合图像的空间 邻近度 和像素值相似度的一种折中处理,同时考虑空域信息和 灰度 相似性,达到保边去噪的目的。

●源图像

●处理后图像

●函数原型

○c++

○Android

●参数解释

○src:源图像Mat对象,需要为8位或者浮点型单通道、三通道的图像

○dst:目标图像Mat对象,不能直接用src来存储处理后的图像

○d:表示在过滤过程中每个像素邻域的直径。如果这个值我们设其为非正数,那么OpenCV会从第五个参数sigmaSpace来计算出它来,在使用过程中我发现有点像模糊力度的意思。

○sigmaColor:颜色空间滤波器的sigma值。这个参数的值越大,就表明该像素邻域内有更宽广的颜色会被混合到一起,产生较大的半相等颜色区域。在使用过程中我发现有点像模糊范围的意思,范围越大看着越模糊

○sigmaSpace:坐标空间中滤波器的sigma值,坐标空间的标注方差。他的数值越大,意味着越远的像素会相互影响,从而使更大的区域足够相似的颜色获取相同的颜色。当d0,d指定了邻域大小且与sigmaSpace无关。否则,d正比于sigmaSpace。使用过程中我发现这个值越大,图像的过渡效果越好。

○borderType:使用默认即可,即不用填。

●c++中

●Android中

图像处理之双边滤波算法

双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折中处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的,具有简单、非迭代、局部处理的特点。之所以能够达到保边去噪的滤波效果是因为滤波器由两个函数构成:

一个函数是像素欧式距离决定滤波器模板的系数,另一个是由像素的灰度差值决定滤波器模板的系数。

其综合了高斯滤波器(Gaussian Filter)和α-截尾均值滤波器(Alpha-Trimmed mean Filter)的特点。高斯滤波器只考虑像素间的欧式距离,其使用的模板系数随着和窗口中心的距离增大而减小;Alpha截尾均值滤波器则只考虑了像素灰度值之间的差值,去掉α%的最小值和最大值后再计算均值。

双边滤波器使用二维高斯函数生成距离模板,使用一维高斯函数生成值域模板。

双边滤波器中,输出像素的值依赖于邻域像素的值的加权组合,其公式如下:

其中(k,l)为模板窗口的中心坐标;(i,j)为模板窗口的其他系数的坐标;σd为高斯函数的标准差。 使用该公式生成的滤波器模板和高斯滤波器使用的模板是没有区别的。

值域模板系数的生成公式如下:

其中,函数f(x,y)表示要处理的图像,f(x,y)表示图像在点(x,y)处的像素值;(k,l)为模板窗口的中心坐标;(i,j)为模板窗口的其他系数的坐标;σr为高斯函数的标准差。

将上述两个模板相乘就得到了双边滤波器的模板,其公式如下:

matlab怎么绘制双边滤波示意图

clc;

T=255;

Delta =80;

Gamma = pi/(2*T);

Rho= Gamma * Delta;

Color = ['b','g','r','c','m','y','k'];

x=-T:T;

y1=exp(-x.^2/(2*Delta*Delta));

plot(x,y1,'--b','LineWidth',2);

hold on;

for k=2:7

y2= cos(Gamma .* x/ (Rho * sqrt(k))).^(k);

plot(x,y2,Color(k));

end

关于双边滤波c代码和双边滤波算法原理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/23776.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载