📄 dt_bayesshrink.m
字号:
function y = dt_BayesShrink(x)
% Local Adaptive Image Denoising Algorithm
% Usage :% y = dt_BayesShrink(x)
% INPUT :% x - a noisy image
% OUTPUT :% y - the corresponding denoised image
% Set the windowsize and the corresponding filter
windowsize = 7;
windowfilt = ones(1,windowsize)/windowsize;
% Number of Stages
J = 6;
I=sqrt(-1);
% symmetric extension
L = length(x); % length of the original image.
N = L+2^J; % length after extension.
x = symextend(x,2^(J-1));
%-------------------
%load nor_dualtree % run normaliz_coefcalc_dual_tree to generate this mat file.
% Forward dual-tree DWT
% Either FSfarras or AntonB function can be used to compute the stage 1 filters
[Faf, Fsf] = FSfarras;
%[Faf, Fsf] = AntonB;
[af, sf] = dualfilt1;
W = cplxdual2D(x, J, Faf, af);
%W = normcoef(W,J,nor);%-------------------------
% Noise variance estimation using robust median estimator..
tmp = W{1}{1}{1}{1};
Nsig = median(abs(tmp(:)))/0.6745;
for scale = 1:J-1
for dir = 1:2
for dir1 = 1:3
% Noisy complex coefficients
%Real part
Y_coef_real = W{scale}{1}{dir}{dir1};
% imaginary part
Y_coef_imag = W{scale}{2}{dir}{dir1};
% The corresponding noisy parent coefficients
%Real part
Y_parent_real = W{scale+1}{1}{dir}{dir1};
% imaginary part
Y_parent_imag = W{scale+1}{2}{dir}{dir1};
% Extend noisy parent matrix to make the matrix size the same as the coefficient matrix.
Y_parent_real = expand(Y_parent_real);
Y_parent_imag = expand(Y_parent_imag);
% Signal variance estimation
Wsig = conv2(windowfilt,windowfilt,(Y_coef_real).^2,'same');%---用Gauss分布的ML估计系数方差----
Ssig = sqrt(max(Wsig-Nsig.^2,eps));
% Threshold value estimation---Bayes
T = Nsig^2./Ssig;
% Bivariate Shrinkage
Y_coef = Y_coef_real+I*Y_coef_imag;
Y_parent = Y_parent_real + I*Y_parent_imag;
Y_coef = BayesShrink(Y_coef,T);
W{scale}{1}{dir}{dir1} = real(Y_coef);
W{scale}{2}{dir}{dir1} = imag(Y_coef);
end
end
end
% Inverse Transform
%W = unnormcoef(W,J,nor);------------------
y = icplxdual2D(W, J, Fsf, sf);
% Extract the image
ind = 2^(J-1)+1:2^(J-1)+L;
y = y(ind,ind);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -