• 大小: 669B
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: Matlab
  • 标签: MATLAB  中值滤波  

资源简介

改进的中值滤波程序,测试后能有效滤除各种噪音,如高斯,椒盐等,比单一的中值滤波效果显著,此为中值滤波函数的M文件,用时需要自己编写主程序调用此函数即可。

资源截图

代码片段和文件信息

%This file includes a function what is named Updated Median Filtering.
%The input should be a picture(g) and the size of moldboard(Smax).
function f=adpmedian(gSmax)
%Smax is the size of filtering moldboard.It must be an odd integer.
if (Smax<=1)|(Smax/2==round(Smax/2))|(Smax~=round(Smax))
    error(‘Smax must be an odd integer >1‘);
end
[MN]=size(g);
%Initializing...
f=g;
f( : )=0;
alreadyProcessed=false(size(g));
%Start filtering
for k=3:2:Smax
    %k*k Minimum filter
    zmin=ordfilt2(g1ones(kk)‘symmetric‘); 
     %k*k Maximum filter
    zmax=ordfilt2(gk*kones(kk)‘symmetric‘);  
    %k*k Median filter
    zmed=medfilt2(g[kk]‘symmetric‘);   
    %Judge that if Zmed is a pulse
    processUsingLevelB=(zmed>amin)&(zmax>zmed)&~alreadyProcessed;   
    %Judge that if Zxy is a pulse
    zB=(g>zmin)&(zmax>g);       
    outputZxy=processUsingLevelB&zB;
    outputZmed=processUsingLevelB&~zB;
    f(outputZxy)=g(outputZxy);
    f(outputZmed)=zmed(outputZmed);
    alreadyProcessed=alreadyProcessed | processUsingLevelB;
    if all(alreadyProcessed( : ))
        break;
    end
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1131  2011-09-17 10:40  adpmedian.m

评论

共有 条评论