clear all close all MC = 10; lambda = [2 3 4 4.5 5 6]; L = [2 4 8]; 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); seed = 0; blSize = [3 3]; parent = 0; boundary = 0; % No boundary mirror extension with bls for fair comparison. covariance = 1; optim = 1; for in=1:length(images) img=double(imread(images{in})); img=255*img/max(img(:)); PS = ones(size(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) % Block DWT. imden=den2d_block(imnoisy,qmf,lambda(il),L(ib),sigma(is)); psnrDWTblock(in,is,rep,il,ib)=psnr(img(:),imden(:)); % Block UDWT. imden=den2d_blockTI(imnoisy,qmf,lambda(il),L(ib),sigma(is)); psnrUDWTblock(in,is,rep,il,ib)=psnr(img(:),imden(:)); % Block Curvelets. imden=den2d_blockcurvwrap(imnoisy,4,lambda(il),L(ib),sigma(is)); psnrCURVblock(in,is,rep,il,ib)=psnr(img(:),imden(:)); end end % BLS DWT. repres1 = 'w';repres2 = 'daub4';Nor = 3;Nsc = ceil(log2(min(size(img))) - 3); imden=denoi_BLS_GSM(imnoisy, sigma(is), PS, blSize, parent, boundary, Nsc, Nor, covariance, optim, repres1, repres2, seed); psnrDWTbls(in,is,rep)=psnr(img(:),imden(:)); % BLS UDWT. repres1 = 'uw'; imden=denoi_BLS_GSM(imnoisy, sigma(is), PS, blSize, parent, boundary, Nsc, Nor, covariance, optim, repres1, repres2, seed); psnrUDWTbls(in,is,rep)=psnr(img(:),imden(:)); % BLS FS. repres1 = 'fs';repres2 = '';Nor = 8;Nsc = ceil(log2(min(size(img))) - 4); imden=denoi_BLS_GSM(imnoisy, sigma(is), PS, blSize, parent, boundary, Nsc, Nor, covariance, optim, repres1, repres2, seed); psnrFSbls(in,is,rep)=psnr(img(:),imden(:)); % BLS Curvelets. repres1 = 'cw';repres2 = '';Nor = [];Nsc = ceil(log2(min(size(img))) - 5); imden=denoi_BLS_GSM(imnoisy, sigma(is), PS, blSize, parent, boundary, Nsc, Nor, covariance, optim, repres1, repres2, seed); psnrCURVbls(in,is,rep)=psnr(img(:),imden(:)); % Surelet DWT. wtype = struct('name','Symmlet','par',6); imden=OWT_SURELET_denoise(imnoisy,wtype,sigma(is)); psnrDWTsurelet(in,is,rep)=psnr(img(:),imden(:)); end psnrDWTblockbest(in,is)=max(max(squeeze(mean(psnrDWTblock(in,is,:,:,:),3)))); psnrUDWTblockbest(in,is)=max(max(squeeze(mean(psnrUDWTblock(in,is,:,:,:),3)))); psnrCURVblockbest(in,is)=max(max(squeeze(mean(psnrCURVblock(in,is,:,:,:),3)))); psnrDWTblsbest(in,is)=squeeze(mean(psnrDWTbls(in,is,:),3)); psnrUDWTblsbest(in,is)=squeeze(mean(psnrUDWTbls(in,is,:),3)); psnrFSblsbest(in,is)=squeeze(mean(psnrFSbls(in,is,:),3)); psnrCURVblsbest(in,is)=squeeze(mean(psnrCURVbls(in,is,:),3)); psnrDWTsureletbest(in,is)=squeeze(mean(psnrDWTsurelet(in,is,:),3)); end end save simudenblockcompare.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 %