clear all close all MC = 10; lambda = [2 3 4 4.5 5 6]; L = [1 2 4 8 16]; sigma = [5,10,15,20,25,30,50,100]; 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)); for il=1:length(lambda) for ib=1:length(L) imden=den2d_block(imnoisy,qmf,lambda(il),L(ib),sigma(is)); psnrDWTblock(in,is,rep,il,ib)=psnr(img(:),imden(:)); imden=den2d_blockTI(imnoisy,qmf,lambda(il),L(ib),sigma(is)); psnrUDWTblock(in,is,rep,il,ib)=psnr(img(:),imden(:)); imden=den2d_blockcurvwrap(imnoisy,4,lambda(il),L(ib),sigma(is)); psnrCURVblock(in,is,rep,il,ib)=psnr(img(:),imden(:)); end end end % DWT. figure(in); set(gcf,'Name',sprintf('DWT %s',images{in}),'NumberTitle','off'); subplot(round(sqrt(length(sigma))),round(sqrt(length(sigma))),is); mesh(lambda,L,squeeze(mean(psnrDWTblock(in,is,:,:,:),3))');axis tight;colormap([0 0 0]); xlabel('\lambda');ylabel('L');title(sprintf('\\sigma=%d PSNR=%.2f db',sigma(is),20*log10(255/sigma(is))));drawnow saveas(gcf,sprintf('DWT_%s.fig',images{in}(1:end-4))); psnrDWTblockbest(in,is)=max(max(squeeze(mean(psnrDWTblock(in,is,:,:,:),3)))); % UDWT; figure(in+length(images)); set(gcf,'Name',sprintf('UDWT %s',images{in}),'NumberTitle','off'); subplot(round(sqrt(length(sigma))),round(sqrt(length(sigma))),is); mesh(lambda,L,squeeze(mean(psnrUDWTblock(in,is,:,:,:),3))');axis tight;colormap([0 0 0]); xlabel('\lambda');ylabel('L');title(sprintf('\\sigma=%d PSNR=%.2f db',sigma(is),20*log10(255/sigma(is))));drawnow saveas(gcf,sprintf('UDWT_%s.fig',images{in}(1:end-4))); psnrUDWTblockbest(in,is)=max(max(squeeze(mean(psnrUDWTblock(in,is,:,:,:),3)))); % Curvelets. figure(in+2*length(images)); set(gcf,'Name',sprintf('CURVWRAP %s',images{in}),'NumberTitle','off'); subplot(round(sqrt(length(sigma))),round(sqrt(length(sigma))),is); mesh(lambda,L,squeeze(mean(psnrCURVblock(in,is,:,:,:),3))');axis tight;colormap([0 0 0]); xlabel('\lambda');ylabel('L');title(sprintf('\\sigma=%d PSNR=%.2f db',sigma(is),20*log10(255/sigma(is))));drawnow saveas(gcf,sprintf('CURVWRAP_%s.fig',images{in}(1:end-4))); psnrCURVblockbest(in,is)=max(max(squeeze(mean(psnrCURVblock(in,is,:,:,:),3)))); end end save simudenblock.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 %