clear all close all images = {'barbara_512x512.png','lena512x512.png','peppers256.png'}; randn('state',0); sigma=20; qmf=MakeONFilter('Symmlet',6); for in=1:length(images) img=double(imread(images{in})); img=255*img/max(img(:)); imnoisy=img+sigma*randn(size(img)); disp('DWT Block'); tic;imdenblock=den2d_block(imnoisy,qmf,4.5,4,sigma);timeblock(in,1)=toc; disp('DWT Term Hard'); tic;imdenH=den2d(imnoisy,qmf,2,'H',sigma,3*sigma);timetermH(in,1)=toc; disp('DWT Term Soft'); tic;imdenS=den2d(imnoisy,qmf,2,'S',sigma,sqrt(3)*sigma);timetermS(in,1)=toc; disp('UDWT Block'); tic;imdenblockTI=den2d_blockTI(imnoisy,qmf,4.5,4,sigma);timeblock(in,2)=toc; disp('UDWT Term Hard'); tic;imdenTIH=den2d_TI(imnoisy,qmf,2,'H',sigma);timetermH(in,2)=toc; disp('UDWT Term Soft'); tic;imdenTIS=den2d_TI(imnoisy,qmf,2,'S',sigma,sqrt(3)*sigma);timetermS(in,2)=toc; disp('Curvelets Block'); tic;[imdenblockC,cput]=den2d_blockcurvwrap(imnoisy,5,4.5,4,sigma);timeblock(in,3)=toc-cput(2); % Correct for one atom normalization step. disp('Curvelets Term Hard'); tic;imdenCH=den2d_curvwrap(imnoisy,5,'H',sigma);timetermH(in,3)=toc-cput(2); disp('Curvelets Term Soft'); tic;imdenCS=den2d_curvwrap(imnoisy,5,'S',sigma,sqrt(3));timetermS(in,3)=toc-cput(2); figure colormap('gray'); subplot(421) imagesc(img);axis image;axis off title('Original'); subplot(422) imagesc(imnoisy);axis image;axis off title(sprintf('Noisy \\sigma=%d PSNR_{in}=%.2f dB',sigma,20*log10(255./sigma))); subplot(434) imagesc(imdenblock);axis image;axis off title(sprintf('DWT Block PSNR=%.2f dB',psnr(img(:),imdenblock))); subplot(435) imagesc(imdenH);axis image;axis off title(sprintf('DWT Term Hard PSNR=%.2f dB',psnr(img(:),imdenH))); subplot(436) imagesc(imdenS);axis image;axis off title(sprintf('DWT Term Soft PSNR=%.2f dB',psnr(img(:),imdenS))); subplot(437) imagesc(imdenblockTI);axis image;axis off title(sprintf('UDWT Block PSNR=%.2f dB',psnr(img(:),imdenblockTI))); subplot(438) imagesc(imdenTIH);axis image;axis off title(sprintf('UDWT Term Hard PSNR=%.2f dB',psnr(img(:),imdenTIH))); subplot(439) imagesc(imdenTIS);axis image;axis off title(sprintf('UDWT Term Soft PSNR=%.2f dB',psnr(img(:),imdenTIS))); subplot(4,3,10) imagesc(imdenblockC);axis image;axis off title(sprintf('Curvelets Block PSNR=%.2f dB',psnr(img(:),imdenblockC))); subplot(4,3,11) imagesc(imdenCH);axis image;axis off title(sprintf('Curvelets Term Hard PSNR=%.2f dB',psnr(img(:),imdenCH))); subplot(4,3,12) imagesc(imdenCS);axis image;axis off title(sprintf('Curvelets Term Soft PSNR=%.2f dB',psnr(img(:),imdenCS))); fprintf('%s\n','*'*ones(1,90)); fprintf('%30sCPU (s) for %s\n',' ',images{in}); fprintf('%s\n','*'*ones(1,90)); fprintf('%-10s%-15s\t%-15s\t%-15s\n',' ','DWT','UDWT','Curvelets'); fprintf('%-10s%-15.2g\t%-15.2g\t%-15.2g\n','Block', timeblock(in,1),timeblock(in,2),timeblock(in,3)); fprintf('%-10s%-15.2g\t%-15.2g\t%-15.2g\n','Term H' , timetermH(in,1),timetermH(in,2),timetermH(in,3)); fprintf('%-10s%-15.2g\t%-15.2g\t%-15.2g\n','Term S' , timetermS(in,1),timetermS(in,2),timetermS(in,3)); end tilefigs % % Part of DBlockToolbox Version:100 % Written by: Jalal Fadili, GREYC CNRS ENSICAEN % Christophe Chesneau, LMNO University of Caen % Jean-Luc Starck, CEA-CNRS % Created June 2008 % This material is distributed under CeCiLL licence. % E-mail: Jalal.Fadili@greyc.ensicaen.fr %