clear all close all MC = 10; lambdadwt = 4.5; lambdaudwt = [4.5*ones(1,6) 6]; lambdacurv = 4.5; thd = 3; L = 4; sigma = [5,10,15,20,25,30,50]; images = {'barbara_512x512.png','lena512x512.png','house.png','boat.png','fingerprint.png','peppers256.png'}; qmf = MakeONFilter('Symmlet',6); randn('state',0); for in=1:length(images) img=double(imread(images{in})); img=255*img/max(img(:)); for is=1:length(sigma) for rep=1:MC imnoisy=img+sigma(is)*randn(size(img)); % Term-by-term DWT. imden=den2d(imnoisy,qmf,2,'H',sigma(is),thd*sigma(is)); psnrDWTterm(in,is,rep)=psnr(img(:),imden(:)); % Block DWT. imden=den2d_block(imnoisy,qmf,lambdadwt,L,sigma(is)); psnrDWTblock(in,is,rep)=psnr(img(:),imden(:)); % Term-by-term UDWT. imden=den2d_TI(imnoisy,qmf,2,'H',sigma(is)); psnrUDWTterm(in,is,rep)=psnr(img(:),imden(:)); % Block UDWT. imden=den2d_blockTI(imnoisy,qmf,lambdaudwt(is),L,sigma(is)); psnrUDWTblock(in,is,rep)=psnr(img(:),imden(:)); % Term-by-term Curvelets. imden=den2d_curvwrap(imnoisy,5,'H',sigma(is)); psnrCURVterm(in,is,rep)=psnr(img(:),imden(:)); % Block Curvelets. imden=den2d_blockcurvwrap(imnoisy,4,lambdacurv,L,sigma(is)); psnrCURVblock(in,is,rep)=psnr(img(:),imden(:)); end psnrDWTblockmean(in,is)=squeeze(mean(psnrDWTblock(in,is,:),3)); psnrUDWTblockmean(in,is)=squeeze(mean(psnrUDWTblock(in,is,:),3)); psnrCURVblockmean(in,is)=squeeze(mean(psnrCURVblock(in,is,:),3)); psnrDWTtermmean(in,is)=squeeze(mean(psnrDWTterm(in,is,:),3)); psnrUDWTtermmean(in,is)=squeeze(mean(psnrUDWTterm(in,is,:),3)); psnrCURVtermmean(in,is)=squeeze(mean(psnrCURVterm(in,is,:),3)); end figure(in); set(gcf,'Name',sprintf('%s',images{in}),'NumberTitle','off'); plot(sigma,psnrDWTblockmean(in,:)-psnrDWTtermmean(in,:),'-b',... sigma,psnrUDWTtermmean(in,:)-psnrDWTtermmean(in,:),'--b',... sigma,psnrUDWTblockmean(in,:)-psnrDWTtermmean(in,:),'-.b',... sigma,psnrCURVtermmean(in,:)-psnrDWTtermmean(in,:),':b',... sigma,psnrCURVblockmean(in,:)-psnrDWTtermmean(in,:),'.-b'); axis tight xlabel('\sigma'); ylabel('PSNR improvement (dB)'); if in==1 legend('DWT block','UDWT term','UDWT block','FDCT term','FDCT block'); end end save simudenblockvsterm.mat % % 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 %