function B=mybfiltering(A,N,sigma_s,sigma_r)
%UNTITLED2 此处显示有关此函数的摘要
% 此处显示详细说明
img=mat2gray(A);%将矩阵转化为灰度图像
[m,n]=size(img);%读取图像像素
r=N; %模板半径
imgn=zeros(m+2*r+1,n+2*r+1);
imgn(r+1:m+r,r+1:n+r)=img;
imgn(1:r,r+1:n+r)=img(1:r,1:n); %扩展上边界
imgn(1:m+r,n+r+1:n+2*r+1)=imgn(1:m+r,n:n+r); %扩展右边界
imgn(m+r+1:m+2*r+1,r+1:n+2*r+1)=imgn(m:m+r,r+1:n+2*r+1); %扩展下边界
imgn(1:m+2*r+1,1:r)=imgn(1:m+2*r+1,r+1:2*r); %扩展左边界
[x,y] = meshgrid(-r:r,-r:r);
%w1=exp(-(x.^2+y.^2)/(2*sigma_s^2)); %以距离作为自变量高斯滤波器
for i=r+1:m+r
for j=r+1:n+r
w1=exp(-(x.^2+y.^2)/(2*sigma_s^2)); %以距离作为自变量高斯滤波器
w2=exp(-(imgn(i-r:i+r,j-r:j+r)-imgn(i,j)).^2/(2*sigma_r^2)); %以像素灰度差值作为自变量的高斯滤波器
w=w1.*w2;
s=imgn(i-r:i+r,j-r:j+r).*w;
imgn(i,j)=sum(sum(s))/sum(sum(w));
end
end
B=mat2gray(imgn(r+1:m+r,r+1:n+r));
end
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
双边滤波.zip (3个子文件)
双边滤波
bfil_main.m 617B
mybfiltering.m 1021B
boy_noisy.gif 282KB
共 3 条
- 1
neuzhaoxin
- 粉丝: 2
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页