Sei sulla pagina 1di 2

Test_Visu_multi.m % visushrink 8m614p close all; clear all; clc; %read I=imread('barbara.

png'); I=double(I); [sizx sizy]=size(I); level=10; seed=0; rand('state',seed); noise=rand(sizx,sizy); noise=noise/std2(noise); noisy=I+noise*level; In=noisy; nbcol=512; level=1; max=0; PSNR=0; ii=1; while(ii<45) wname=sprintf('db%d',ii); [cod_ca1,cod_ch1,cod_cv1,cod_cd1] = dwt2(In,wname); wname; sigma = median(abs(cod_cd1(:)))/0.6745; [x y] = size(I); nx=(x/(2^level)); ny=(y/(2^level)); N=nx*ny; thd = sqrt(2*log(N))*sigma; for i=1:nx for j=1:ny if cod_cd1(i,j) >=thd cod_cd1(i,j)=cod_cd1(i,j)-thd; else if cod_cd1(i,j)<=-thd cod_cd1(i,j)=cod_cd1(i,j)+thd; else cod_cd1(i,j)=0; end end end end %% hori for i=1:nx for j=1:ny if cod_ch1(i,j) >=thd cod_ch1(i,j)=cod_ch1(i,j)-thd; else if cod_ch1(i,j)<=-thd cod_ch1(i,j)=cod_ch1(i,j)+thd; else

Page 1

Test_Visu_multi.m cod_ch1(i,j)=0; end end end end for i=1:nx for j=1:ny if cod_cv1(i,j) >=thd cod_cv1(i,j)=cod_cv1(i,j)-thd; else if cod_cv1(i,j)<=-thd cod_cv1(i,j)=cod_cv1(i,j)+thd; else cod_cv1(i,j)=0; end end end end Sx=size(In); Ir = idwt2(cod_ca1,cod_ch1,cod_cv1,cod_cd1,wname,Sx); III=uint8(Ir); I=uint8(I); In=uint8(In); [MSE, PSNR] = Calc_MSE_PSNR(I,III); if PSNR>max max PSNR ii max=PSNR; end ii=ii+1; In=III;

Page 2

end max subplot(131),imshow(I);title('original Image'); subplot(132),imshow(In);title('Noisy Image'); subplot(133),imshow(III);title('Denoised Image'); % imshow(I),figure,imshow(In),figure,imshow(III);

Potrebbero piacerti anche