denoise1.m
上传用户:sla11nk8
上传日期:2013-03-09
资源大小:21k
文件大小:2k
源码类别:

其他

开发平台:

Matlab

  1. % denoise1.m
  2. %---本程序是基于WaveLab802平台作的。
  3. %---包括以下方法:
  4. % VisuShrink方法、SUREShrink方法、BayesShrink方法、AdaptBayesShrink方法、LAWMLShrink方法。
  5. %---运行方法:
  6. % 将某方法对应行的代码前的“%”去掉,而其他方法前一律都加“%”屏蔽掉。
  7. % 噪声方差大小和小波可以自行设定
  8. I=imread('lena.bmp');%读取图像数据
  9. n=length(I);
  10. figure;
  11. imshow(I,256);%显示原图像
  12. %产生噪声图像
  13. theta_noise=20;%噪声方差(可设为其他值)-------------------------------------------
  14. noise=GWN2(length(I),theta_noise);
  15. Inoise=double(I)+noise;
  16. figure;
  17. imshow(Inoise,[]);%显示带噪图像
  18. %小波滤波器选择
  19. qmf=MakeONFilter('Daubechies',8);%Daubechies8小波(可设为其他小波)-----------------
  20. L=5;%分解层数=log2(n)-L
  21. [InoiseNorm,coef] = NormNoise2(Inoise,qmf);%归一化
  22. wc=FWT2_PO(InoiseNorm,L,qmf);
  23. %--------------------------VisuShrink方法-----------------------------------------
  24. %wc = MultiVisu2(wc,L);
  25. %---------------------------------------------------------------------------------
  26. %--------------------------SUREShrink方法-----------------------------------------
  27. wc = MultiSURE2(wc,L);
  28. %---------------------------------------------------------------------------------
  29. %--------------------------BayesShrink方法-----------------------------------------
  30. %wc = MultiBayes2(wc,L);
  31. %---------------------------------------------------------------------------------
  32. %--------------------------AdaptBayesShrink方法-----------------------------------
  33. %wc = AdaptShrink2(wc,L);
  34. %---------------------------------------------------------------------------------
  35. %--------------------------LAWMLShrink方法----------------------------------------
  36. %wc = LAWMLShrink2(wc,L);
  37. %---------------------------------------------------------------------------------
  38. IdenoiseNorm= IWT2_PO(wc,L,qmf);
  39. Idenoise=IdenoiseNorm./coef;
  40. %输出去噪后的MSE和PSNR值
  41. MSE2_=MSE2(double(I),Idenoise)
  42. PSNR2=PSNR(MSE2_)
  43. figure;
  44. imshow(Idenoise,[]);%显示恢复图像