⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adp_spa_denoise_new.m

📁 基于个数判断脉冲噪声的中值滤波器在matlab下的仿真实现
💻 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 + -