function result=SGAU(im, radius, iteration,sigma)
% 基于滑动窗口滤波模板的高斯滤波
r = radius; %the radius of the side window
k = ones(2*r+1,1)/(2*r+1); %separable kernel
k_L=k; k_L(r+2:end)=0; k_L = k_L/sum(k_L); %half kernel
k_R=flipud(k_L);
m = size(im,1)+2*r; n = size(im,2)+2*r; total = m*n;
[row, col]=ndgrid(1:m,1:n);
offset = row + m*(col-1) - total;
im = double(im);
result = im;
d = zeros(m,n,8,'single');
for ch=1:size(im,3)
U = padarray(im(:,:,ch),[r,r],'replicate');
for i = 1:iteration
%all projection distances
gausFilter = fspecial('gaussian',[3 3],sigma);
xy1=[1,1,0;1,1,0;0,0,0];
xy1=gausFilter.*xy1;
Y1=xy1./sum(sum(xy1));
% Y1=mapminmax(xy1,0,1);
%
xy2=[0,1,1;0,1,1;0,0,0];
xy2=gausFilter.*xy2;
% Y2=mapminmax(xy2,0,1);
Y2=xy2./sum(sum(xy2));
%
xy3=[0,0,0;0,1,1;0,1,1];
xy3=gausFilter.*xy3;
% Y3=mapminmax(xy3,0,1);
Y3=xy3./sum(sum(xy3));
%
xy4=[0,0,0;1,1,0;1,1,0];
xy4=gausFilter.*xy4;
% Y4=mapminmax(xy4,0,1);
Y4=xy4./sum(sum(xy4));
%
xy5=[1,1,1;1,1,1;0,0,0];
xy5=gausFilter.*xy5;
% Y5=mapminmax(xy5,0,1);
Y5=xy5./sum(sum(xy5));
%
xy6=[0,0,0;1,1,1;1,1,1];
xy6=gausFilter.*xy6;
% Y6=mapminmax(xy6,0,1);
Y6=xy6./sum(sum(xy6));
%
xy7=[1,1,0;1,1,0;1,1,0];
xy7=gausFilter.*xy7;
% Y7=mapminmax(xy7,0,1);
Y7=xy7./sum(sum(xy7));
%
xy8=[0,1,1;0,1,1;0,1,1];
xy8=gausFilter.*xy8;
% Y8=mapminmax(xy8,0,1);
Y8=xy8./sum(sum(xy8));
d(:,:,8)=imfilter(U,Y8,'replicate')-U;
d(:,:,7)=imfilter(U,Y7,'replicate')-U;
d(:,:,6)=imfilter(U,Y6,'replicate')-U;
d(:,:,5)=imfilter(U,Y5,'replicate')-U;
d(:,:,4)=imfilter(U,Y4,'replicate')-U;
d(:,:,3)=imfilter(U,Y3,'replicate')-U;
d(:,:,2)=imfilter(U,Y2,'replicate')-U;
d(:,:,1)=imfilter(U,Y1,'replicate')-U;
%find the minimal signed distance
tmp = abs(d);
[~,ind] = min(tmp,[],3);
index = offset+total*ind;
dm = d(index); %signed minimal distance
%update
U = U + dm;
end
result(:,:,ch) = U(r+1:end-r,r+1:end-r);
end
没有合适的资源?快使用搜索试试~ 我知道了~
matlab-基于滑动窗口滤波模板的高斯滤波实现图像的保边去噪仿真-源码
共4个文件
m:3个
jpg:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 126 浏览量
2021-09-30
21:22:24
上传
评论
收藏 28KB RAR 举报
温馨提示
matlab_基于滑动窗口滤波模板的高斯滤波实现图像的保边去噪仿真_源码
资源推荐
资源详情
资源评论
收起资源包目录
matlab_基于滑动窗口滤波模板的高斯滤波实现图像的保边去噪仿真_源码.rar (4个子文件)
matlab_基于滑动窗口滤波模板的高斯滤波实现图像的保边去噪仿真_源码
1.jpg 25KB
Runme_SlidWindow.m 754B
func
SideWindowBoxFilter.m 1KB
SGAU.m 2KB
共 4 条
- 1
资源评论
mYlEaVeiSmVp
- 粉丝: 1907
- 资源: 19万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功