denoise1.m
上传用户:sla11nk8
上传日期:2013-03-09
资源大小:21k
文件大小:2k
- % denoise1.m
- %---本程序是基于WaveLab802平台作的。
- %---包括以下方法:
- % VisuShrink方法、SUREShrink方法、BayesShrink方法、AdaptBayesShrink方法、LAWMLShrink方法。
- %---运行方法:
- % 将某方法对应行的代码前的“%”去掉,而其他方法前一律都加“%”屏蔽掉。
- % 噪声方差大小和小波可以自行设定
- I=imread('lena.bmp');%读取图像数据
- n=length(I);
- figure;
- imshow(I,256);%显示原图像
- %产生噪声图像
- theta_noise=20;%噪声方差(可设为其他值)-------------------------------------------
- noise=GWN2(length(I),theta_noise);
- Inoise=double(I)+noise;
- figure;
- imshow(Inoise,[]);%显示带噪图像
- %小波滤波器选择
- qmf=MakeONFilter('Daubechies',8);%Daubechies8小波(可设为其他小波)-----------------
- L=5;%分解层数=log2(n)-L
- [InoiseNorm,coef] = NormNoise2(Inoise,qmf);%归一化
- wc=FWT2_PO(InoiseNorm,L,qmf);
- %--------------------------VisuShrink方法-----------------------------------------
- %wc = MultiVisu2(wc,L);
- %---------------------------------------------------------------------------------
- %--------------------------SUREShrink方法-----------------------------------------
- wc = MultiSURE2(wc,L);
- %---------------------------------------------------------------------------------
- %--------------------------BayesShrink方法-----------------------------------------
- %wc = MultiBayes2(wc,L);
- %---------------------------------------------------------------------------------
- %--------------------------AdaptBayesShrink方法-----------------------------------
- %wc = AdaptShrink2(wc,L);
- %---------------------------------------------------------------------------------
- %--------------------------LAWMLShrink方法----------------------------------------
- %wc = LAWMLShrink2(wc,L);
- %---------------------------------------------------------------------------------
- IdenoiseNorm= IWT2_PO(wc,L,qmf);
- Idenoise=IdenoiseNorm./coef;
- %输出去噪后的MSE和PSNR值
- MSE2_=MSE2(double(I),Idenoise)
- PSNR2=PSNR(MSE2_)
- figure;
- imshow(Idenoise,[]);%显示恢复图像