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

📄 test_pyramidal.m

📁 小波提升算法的实现
💻 M
字号:
% test for the pyramidal decomposition


options.bound = 'per';
% options.bound = 'sym';
options.J = 5;

g = MakeONFilter('Haar',1);
%g = MakeONFilter('Battle',3);

[qmf,dqmf] = MakeBSFilter( 'CDF', [4,4] );
g = {qmf,dqmf};

sigma = 0.1;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% test in 1D
disp('--- test in 1D ---');
n = 1024;
x = (0:1/(n-1):1)';
% x = ones(n,1);
y = cos( 8*pi*x.^2 );
y = x.^2;

y = y + randn(size(y))*sigma;

% fwd transform
f = fwt_pyramid(y,g,options);

% threshold
N = 100;
f = keep_biggest(f,N);

% bwd transform
y_fr = fwt_pyramid(f,g,options);
y_nfr = fwt_pyramid_nonframe(f,g,options);

Eo = norme(y)^2;
Ep = 0;
for i=1:length(f)
    Ep = Ep + norme(f{i})^2;
end

disp(sprintf('Energy : original=%.3f, transformed=%.3f.', Eo, Ep));

disp( sprintf('Error frame=%.3f, Error non-frame=%.3f', norme(y-y_fr), norme(y-y_nfr) ) ); 
disp( sprintf('PSNR frame=%.3f, PSNR non-frame=%.3f', psnr(y,y_fr), psnr(y,y_nfr)) ); 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% test in 2D
disp('--- test in 2D ---');
n = 512;
y = load_image('peppers', n);
options.J = 6;

% fwd transform
f = fwt_pyramid(y,g,options);

% threshold
if 1
N = 2^14;
f = keep_biggest(f,N);
end

% bwd transform
y_fr = fwt_pyramid(f,g,options);
y_nfr = fwt_pyramid_nonframe(f,g,options);

disp( sprintf('Error frame=%.3f, Error non-frame=%.3f', mean(mean((y-y_fr).^2)), mean(mean((y-y_nfr).^2)) ) ); 
disp( sprintf('PSNR frame=%.3f, PSNR non-frame=%.3f', psnr(y,y_fr), psnr(y,y_nfr)) ); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -