Digital Signal Processing Reference
In-Depth Information
% DCTG2 implements a Parseval tight frame
% and the curvelets have l_2 norm
= 1/sqrt(redundancy).
nb=prod(size(C{1}{1}));
for j=2:length(C)
for w=1:length(C{j})
nb=nb+prod(size(C{j}{w}));
end
end
E = N/sqrt(nb);
% Hard-threshold UWT coeffs: finest scale at 4*sigma and
% other scales at 3*sigma.
Ct=C;
for j=2:length(C)
thresh = 3*sigma + sigma*(j == length(C));
for w=1:length(C{j})
Ct{j}{w} = C{j}{w}.* (abs(C{j}{w}) > thresh*E);
end
end
% Take inverse curvelet transform
imdendctg2 = real(ifdct_wrapping(Ct,1,J-coarsest));
% Display.
subplot(221)
imagesc(img);axis image;axis off;colormap('gray')
set(gca,'FontSize',14);
title('(a)');
subplot(222)
imagesc(imn);axis image;axis off
set(gca,'FontSize',14);
title('(b)');
subplot(223)
imagesc(imdendctg2);axis image;axis off
set(gca,'FontSize',14);
title('(c)');
subplot(224)
imagesc(imdenuwt);axis image;axis off
set(gca,'FontSize',14);
title('(d)');
Figures 5.19(c) and 5.19(d) show the restored images by the DCTG2 and the
UWT, respectively. Contours and stripes on the trousers and scarf are much better
recovered with the DCTG2.