Matlab 双边滤波函数imbilatfilt用法

摘自mathwork,记录以便查阅Bilateral filtering of images with Gaussian kernels - MATLAB imbilatfilt - MathWorks 中国

基于高斯核得双边滤波算法(一种边缘保持降噪算法)

基本调用方法:

J = imbilatfilt(I)
J = imbilatfilt(I,degreeOfSmoothing)
J = imbilatfilt(I,degreeOfSmoothing,spatialSigma)
J = imbilatfilt(___,Name,Value)

支持对RGB和灰度图的滤波

举例:

I = imread('cameraman.tif');
imshow(I)

取一个patch,计算其方差,作为滤波参数,然后滤波:

patch = imcrop(I,[170, 35, 50 50]);
patchVar = std2(patch)^2;
DoS = 2*patchVar;
J = imbilatfilt(I,DoS);
imshow(J)
title(['Degree of Smoothing: ',num2str(DoS)])

发现上述图对条纹状伪影去除效果不明显。调整spatialSigma从默认1到2:

K = imbilatfilt(I,DoS,2);
imshow(K)
title(['Degree of Smoothing: ',num2str(DoS),', Spatial Sigma: 2'])

注意:R2018a及以上版本支持该函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值