?? denoise1.m
字號:
% 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,[]);%顯示恢復圖像
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -