資源簡介
基于matlab實現的非局部均值濾波器,基于matlab實現的非局部均值濾波器
代碼片段和文件信息
function?DeNimg?=?Non_Local_Means(NimgPSHWSHSigma)
%?Non_Local_Means濾波器
%函數輸入:?
%?????????Nimg:??輸入的圖像矩陣?+?帶噪聲的
%?????????PSH:??擴展窗尺寸大小
%?????????WSH:?窗尺寸大小
%?????????Sigma:方差
%函數輸出:?
%?????????DeNimg:?重構濾波圖像
if?~isa(Nimg‘double‘)
????Nimg?=?double(Nimg)/255;
end
%?圖像維數
[HeightWidth]?=?size(Nimg);
u?=?zeros(HeightWidth);?%?初始化去噪圖像矩陣
M?=?u;?%?初始化權值矩陣
Z?=?M;?%?初始化疊加權值?accumlated?weights
%?避免邊界效應
PP?=?padarray(Nimg[PSHPSH]‘symmetric‘‘both‘);
PW?=?padarray(Nimg[WSHWSH]‘symmetric‘‘both‘);
%?padarray使用
%?A?=
%??????1?????3?????4
%??????2?????3?????4
%??????3?????4?????5
%?B?=?padarray(A?2?*?[1?1]?0?‘both‘)
%??????0?????0?????0?????0?????0?????0?????0
%??????0?????0?????0?????0?????0?????0?????0
%??????0?????0?????1?????3?????4?????0?????0
%??????0?????0?????2?????3?????4?????0?????0
%??????0?????0?????3?????4?????5?????0?????0
%??????0?????0?????0?????0?????0?????0?????0
%??????0?????0?????0?????0?????0?????0?????0
%?主循環
for?dx?=?-WSH:WSH
????for?dy?=?-WSH:WSH
????????if?dx?~=?0?||?dy?~=?0
????????????Sd?=?integral_img(PPdxdy);??%?插值圖像
????????????%?獲取對應像素點的平方差矩陣
????????????SDist?=?Sd(PSH+1:end-PSHPSH+1:end-PSH)+Sd(1:end-2*PSH
評論
共有 條評論