www.pudn.com > SPIHT_bandelet.rar > perform_warped_wavelet.m
function M = perform_warped_wavelet(M,theta,dir)
% perform_warped_wavelet - perform a warped haar transform
%
% MW = perform_warped_wavelet(M,theta,dir);
%
% Copyright (c) 2005 Gabriel Peyré
if theta==Inf % special token : no geometry
return; % nothing to do
end
if nargin<3
dir = 1;
end
if size(M,3)>1
for i=1:size(M,3)
M(:,:,i) = perform_warped_wavelet(M(:,:,i),theta,dir);
end
return;
end
n = size(M,1);
% sampling location
[Y,X] = meshgrid(1:n,1:n);
% projection on orthogonal direction
t = -sin(theta)*X(:) + cos(theta)*Y(:);
% order points in increasing order
[tmp,I] = sort(t);
Jmin = 1;
M(I) = perform_wavelet_transform(M(I),Jmin,dir);