• 大小: 2.8MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-11
  • 语言: Matlab
  • 标签: MATLAB  

资源简介

MATLAB的去噪声,可用于对图像进行去噪声操作,优化图像质量。

资源截图

代码片段和文件信息

function DenoisedImg=NLmeans(IdsDsh)
%I:含噪声图像
%ds:邻域窗口半径
%Ds:搜索窗口半径
%h:高斯函数平滑参数
%DenoisedImg:去噪图像
I=double(I);
[mn]=size(I);
DenoisedImg=zeros(mn);
PaddedImg = padarray(I[dsds]‘symmetric‘‘both‘);
kernel=ones(2*ds+12*ds+1);
kernel=kernel./((2*ds+1)*(2*ds+1));
h2=h*h;
for i=1:m
    for j=1:n
        i1=i+ds;
        j1=j+ds;
        W1=PaddedImg(i1-ds:i1+dsj1-ds:j1+ds);%邻域窗口1
        wmax=0;
        average=0;
        sweight=0;
        %%搜索窗口
        rmin = max(i1-Dsds+1);
        rmax = min(i1+Dsm+ds);
        smin = max(j1-Dsds+1);
        smax = min(j1+Dsn+ds);
        for r=rmin:rmax
            for s=smin:smax
                if(r==i1&&s==j1)
                continue;
                end
                W2=PaddedImg(r-ds:r+dss-ds:s+ds);%邻域窗口2
                Dist2=sum(sum(kernel.*(W1-W2).*(W1-W2)));%邻域间距离
                w=exp(-Dist2/h2);
                if(w>wmax)
                    wmax=w;
                end
                sweight=sweight+w;
                average=average+w*PaddedImg(rs);
            end
        end
        average=average+wmax*PaddedImg(i1j1);%自身取最大权值
        sweight=sweight+wmax;
        DenoisedImg(ij)=average/sweight;
    end
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件     3039232  2017-12-25 21:02  Denoise.ppt
     目录           0  2017-12-25 20:55  NLM\
     文件       66614  2017-12-07 21:17  NLM\LENA.BMP
     文件        1296  2017-01-03 10:44  NLM\NLmeans.m
     文件         170  2017-12-25 20:51  NLM\test_nlm.m

评论

共有 条评论