📄 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 + -