Transformée de Fourier
La transformée de Fourier permet la décomposition d’un signal f en combinaison linéaire de sinusoïdes complexes
• Les coefficients F[u,v] dit coefficients de Fourier, fournissent des informations sur les fréquences (u,v) et permettent des manipulations dans le domaine fréquentiel
Transformation de Fourier discrète
On appelle la fonction F(u,v) le spectre
Code Matlab:
[f, p]=uigetfile('*','selection de fichier'); S=imread(fullfile(p,f)); subplot(1,3,1); imshow (S); title ( 'Image originale'); FS=fft2(double(S)); module=abs(fftshift(FS)); Max=max(max(max(abs(module)))); subplot(1,3,2), imshow(module *255 /Max);colormap gray ; title ( 'Spectre d''amplitude'); phase=angle(fftshift(FS)); subplot(1,3,3); imshow(phase,[-pi,pi]); colormap gray; title ( 'Spectre de phase');
Exemple d'utilisation de la Transformée de Fourier: Mixer 2 images: L'amplitude de l'image A et la phase de l'image B.
imageA = imread('imA.jpg'); imageB = imread('imB.jpg'); fftA = fft2(double(imageA)); fftB = fft2(double(imageB)); fftC = abs(fftA).*exp(1i*angle(fftB)); fftD = abs(fftB).*exp(1i*angle(fftA)); fftE= abs(fftA).*exp(1i*angle(fftA)); fftF= abs(fftB).*exp(1i*angle(fftB)); imageC = ifft2(fftC); imageD = ifft2(fftD); imageE = ifft2(fftE); imageF = ifft2(fftF); %Calculate limits for plotting cmin = min(min(min(abs(imageC)))); cmax = max(max(max(abs(imageC)))); dmin = min(min(min(abs(imageD)))); dmax = max(max(max(abs(imageD)))); subplot (2,3,1), imshow(imageA), title('Image originale A'); subplot (2,3,2), imshow(imageB), title('Image originale B'); subplot (2,3,3), imshow(abs(imageC/255), [cmin cmax]), colormap gray, title('Amplitude A avec phase B'); subplot (2,3,4), imshow(abs(imageD/255), [cmin cmax]), colormap gray, title('Amplitude B avec phase A'); subplot (2,3,5), imshow(abs(imageE/255), [cmin cmax]), colormap gray, title('image A reconstruite'); subplot (2,3,6), imshow(abs(imageF/255), [cmin cmax]), colormap gray, title('image B reconstruite');