clear all; close all;
[filename, pathname] = uigetfile({'*.jpg;*.tif;*.png;*.gif;*.bmp','All Image Files';...
'*.*','All Files' },'mytitle',...
'C:\Work\myfile.jpg')
f = imread(filename);
% image sur un plan
if (length(size(f))>2)
f=f(:,:,1);% passage de 3 dimensions à 1 ( couleur->niveau de gris)
end
% nombre de bit
k=8;
%taile de l'image
[M N]=size(f);
tailleligne = log2(M);
taillecolonne = log2(N);
dimension = floor(min(tailleligne,taillecolonne));
f=double(f(1:2^dimension,1:2^dimension));
%dimension = 1; combien de passe faisons nous
F=f;
[M N]=size(F);
for d = 1 : dimension
%haar wavelet
h=zeros(M/2,N);
g=h;
for i = 0 : M/2-1
h(i+1,2*i+1:2*i+2)=[0.5 0.5];
g(i+1,2*i+1:2*i+2)=[-0.5 0.5];
end
w=[h;g];
F(1:M,1:N) = w*F(1:M,1:N)*w';
M=M/2;
N=N/2;
end
%haar wavelet inverse
fr = F;
for d = dimension : -1 : 1
M=M*2;
N=N*2;
h=zeros(M,N/2);
g=h;
for i = 0 : N/2-1
h(2*i+1:2*i+2,i+1)=[1 1];
g(2*i+1:2*i+2,i+1)=[-1 1];
end
w=[h g];
fr(1:M,1:N) = w*fr(1:M,1:N)*w';
end
figure( 'Name','DWT haar',...
'NumberTitle','off',...
'color',[0.3137 0.3137 0.5098]);
subplot(121)
imshow(uint8(f))
title('Original');
subplot(122)
imshow(uint8(F))
title('Transformée en ondelettes de haar');
figure( 'Name','IDWT haar',...
'NumberTitle','off',...
'color',[0.3137 0.3137 0.5098]);
subplot(121)
imshow(uint8(F))
title('Transformée en ondelettes de haar');
subplot(122)
imshow(uint8(fr))
title('Transformée inverse');
DWT avec 1 passe
IDWT associée à la DWT ci-dessus
DWT avec 2 passe
IDWT associée à la DWT ci-dessus
DWT avec le maximum de pass
IDWT associée à la DWT ci-dessus
Copyright © 2010-2014, tous droits réservés, contact : operationpixel@free.fr