⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 denoise1.m

📁 基于小波变换的多种去噪方法在matlab上的实现
💻 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 + -