function out_vector = mra_mallat_2D(in_vector)
[c d] = wavelet_split(in_vector,1);
[cc dc] = wavelet_split(c,2);
[cd dd] = wavelet_split(d,2);
out_vector = [cc,cd;dc,dd];
function [c d] = wavelet_split(ivect,w_d)
low_filter_split = 1.414*[0.5 0.5];
high_filter_split = 1.414*[-0.5 0.5];
if w_d == 2
ivect = transpose(ivect);
else
end
[m n] = size(ivect);
c0 = conv2(ivect, low_filter_split);
d0 = conv2(ivect, high_filter_split);
c = c0(:,2:2:n);
d = d0(:,2:2:n);
if w_d == 2
c = transpose(c);
d = transpose(d);
else
end
function ovect = wavelet_recst(ivect1, ivect2, w_d)
low_filter_recst = 1.414*[0.5 0.5];
high_filter_recst = 1.414*[0.5 -0.5];
if w_d == 2
ivect1 = transpose(ivect1);
ivect2 = transpose(ivect2);
else
end
c0 = [ivect1,ivect2];
[m n] = size(c0);
d0 = c0;
c0(:,1:2:n-1) = 0;
c0(:,2:2:n) = ivect1;
c1 = conv2(c0, low_filter_recst);
d0(:,1:2:n-1) = 0;
d0(:,2:2:n) = ivect2;
d1 = conv2(d0, high_filter_recst);
ovect = c1+d1;
if w_d == 2
ovect = transpose(ovect);
else
end
- 1
- 2
- 3
- 4
- 5
- 6
前往页