📄 denoising_lawmlshrink.m
字号:
function y = denoising_LAWMLShrink(x)
% Local Adaptive Image Denoising Algorithm
% Usage :
% y = denoising_LAWMLShrink(x)
% INPUT :
% x - a noisy image
% OUTPUT :
% y - the corresponding denoised image
% Adjust windowsize and the corresponding filter
windowsize = 7;
windowfilt = ones(1,windowsize)/windowsize;
% Number of Stages
L = 6;
% symmetric extension
N = length(x);
N = N+2^L;
x = symextend(x,2^(L-1));
% forward transform
[af, sf] = farras;
W = dwt2D(x,L,af);
% Noise variance estimation using robust median estimator..
tmp = W{1}{3};
Nsig = median(abs(tmp(:)))/0.6745;
for scale = 1:L-1
for dir = 1:3
% noisy coefficients
Y_coefficient = W{scale}{dir};
% noisy parent
Y_parent = W{scale+1}{dir};
% extent Y_parent to make the matrix size be equal to Y_coefficient
Y_parent = expand(Y_parent);
% Signal variance estimation
Wsig = conv2(windowfilt,windowfilt,(Y_coefficient).^2,'same');%---用Gauss分布的ML估计系数方差----
Ssig = sqrt(max(Wsig-Nsig.^2,eps));
% LAWML Shrinkage
W{scale}{dir}= LAWMLShrink(Y_coefficient,Ssig,Nsig);
end
end
% Inverse Transform
y = idwt2D(W,L,sf);
% Extract the image
y = y(2^(L-1)+1:2^(L-1)+512,2^(L-1)+1:2^(L-1)+512);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -