📄 adp_spa_denoise_new.m
字号:
function[x,edge,noise]=adp_spa_denoise_new(t,r,M1)
[dep,width]=size(t);
x=ones(size(t));
edge=zeros(size(t));
noise=zeros(size(t));
for i=3:dep-2
for j=3:width-2
f1=t(i-2,j-2)-t(i,j);
f2=t(i-2,j-1)-t(i,j);
f3=t(i-2,j)-t(i,j);
f4=t(i-2,j+1)-t(i,j);
f5=t(i-2,j+2)-t(i,j);
f6=t(i-1,j-2)-t(i,j);
f7=t(i-1,j-1)-t(i,j);
f8=t(i-1,j)-t(i,j);
f9=t(i-1,j+1)-t(i,j);
f10=t(i-1,j+2)-t(i,j);
f11=t(i,j-2)-t(i,j);
f12=t(i,j-1)-t(i,j);
f13=t(i,j)-t(i,j);
f14=t(i,j+1)-t(i,j);
f15=t(i,j+2)-t(i,j);
f16=t(i+1,j-2)-t(i,j);
f17=t(i+1,j-1)-t(i,j);
f18=t(i+1,j)-t(i,j);
f19=t(i+1,j+1)-t(i,j);
f20=t(i+1,j+2)-t(i,j);
f21=t(i+2,j-2)-t(i,j);
f22=t(i+2,j-1)-t(i,j);
f23=t(i+2,j)-t(i,j);
f24=t(i+2,j+1)-t(i,j);
f25=t(i+2,j+2)-t(i,j);
f=[f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f17 f18 f19 f20 f21 f22 f23 f24 f25];
f_mean=0;
f_var=0;
for k=1:25
f_mean=f_mean+f(k);
end;
f_mean=f_mean/24;
for k=1:25
f_var=f_var+(f(k)-f_mean).^2;
end;
f_var=f_var/24;
M=(f_mean+f_var)*r;
cnt=0;
for k=1:25
if(abs(f(k))>M1)
cnt=cnt+1;
end;
end;
if(cnt>=18)
x(i,j)=median([t(i-2,j-1) t(i-2,j+1) t(i-1,j-2) t(i-1,j) t(i-1,j+2) t(i,j-1) t(i,j) t(i,j+1) t(i+1,j-2) t(i+1,j) t(i+1,j+2) t(i+2,j-1) t(i+2,j+1)]);
noise(i,j)=1;
else
x(i,j)=t(i,j);
noise(i,j)=0;
end;
if((cnt<18)&&(cnt>=5))
edge(i,j)=1;
else
edge(i,j)=0;
end;
end;
end;
for i=3:dep-2
x(i,1)=x(i,2);
x(i,2)=x(i,3);
x(i,width-1)=x(i,width-2);
x(i,width)=x(i,width-2);
end;
x(1,:)=x(3,:);
x(2,:)=x(3,:);
x(dep-1,:)=x(dep-2,:);
x(dep,:)=x(dep-2,:);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -