📄 func_dwt.m
字号:
function [E_W , S] = func_DWT(I, level, Lo_D, Hi_D);
mm=mean(I(:));
[C,S] = func_Mywavedec2(I,level,Lo_D,Hi_D);
S(:,3) = S(:,1).*S(:,2); % dim of detail coef nmatrices
number=level*3+1;
L = length(S);
I_W=zeros(S(1,1),S(1,2));
% approx part
I_W( 1:S(1,1) , 1:S(1,2) ) = reshape(C(1:S(1,3)),S(1,1:2));
e=mean(mean(abs(I_W)));
for k=2:L-1
rows=S(k,1);
columns=S(k,2);
%horizontal part
c_start = S(1,3) + 3*sum(S(2:k-1,3)) + 1;
c_stop = S(1,3) + 3*sum(S(2:k-1,3)) + S(k,3);
% I_W=zeros(1:S(k,1),1:S(k,2));
I_W=zeros(S(k,1),S(k,2));
I_W(1:rows,1:columns) = reshape( C(c_start:c_stop) , S(k,1:2) );
e=[mean(mean(abs(I_W)));e];
% vertical part
c_start = S(1,3) + 3*sum(S(2:k-1,3)) + S(k,3) + 1;
c_stop = S(1,3) + 3*sum(S(2:k-1,3)) + 2*S(k,3);
I_W(1:rows,1:columns) = reshape( C(c_start:c_stop) , S(k,1:2) );
e=[mean(mean(abs(I_W)));e];
% diagonal part
c_start = S(1,3) + 3*sum(S(2:k-1,3)) + 2*S(k,3) + 1;
c_stop = S(1,3) + 3*sum(S(2:k,3));
I_W(1:rows,1:columns) = reshape( C(c_start:c_stop) , S(k,1:2) );
e=[mean(mean(abs(I_W)));e];
end
E_W=[e;mm];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -