資源簡介
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
- 上一篇:SIMUli
nk汽車案例 - 下一篇:各種PID算法
評論
共有 條評論