La Transformée de Fourrier

Discussion générale entre passionnés et amateurs de mathématiques sur des sujets mathématiques variés
hamdimanel
Messages: 3
Enregistré le: 14 Jan 2017, 18:11

la Transformée de Fourrier

par hamdimanel » 22 Avr 2017, 09:59

Bonjour,
je suis débutante en matlab et j'ai besoin vraiment de votre aide.
Fourier transform of image
i=imread('chipper.jpg');
i=rgb2gray(i);
i=im2double(i);
FI=fft2(i);
FI_S=abs(fftshift(FI));
I1=ifft2(FI);
I2=real(I1);
subplot(131),imshow(i),title('original');
subplot(132),imagesc(0.5*log(1+FI_S)),title('fourier spectrum'), axis off;
subplot(133),imshow(I2),title('reconstructed');

c'est la transformée de fourrier qui permet de passer du domaine spatial au domaine fréquentiel.
je veux une explication détaillée de ce code que fait chaque fonction???
par exemple pourquoi transformer l'image en double ?
fftshift=centrage de la fréquence nulle mais que fait abs(fftshift)??
imagesc(0.5*log(1+FI_S))?????pourquoi on a utiliser imagesc et nn imshow ,pourquoi 0.5*log(1+FI_S)???
merci pour votre compréhension,j'ai raiment besoin de votre aide.



pascal16
Membre Légendaire
Messages: 6663
Enregistré le: 01 Mar 2017, 13:58
Localisation: Angoulème : Ville de la BD et du FFA. gare TGV

Re: la Transformée de Fourrier

par pascal16 » 08 Mai 2017, 08:56

J'y connais rien en mathlab, mais un peu en programmation

i=imread('chipper.jpg');
-> lire l'image chipper.jpg
-> i devient un tableau de nombres, sans doute au format RGB, donc 3 données 8 bits par point.

i=rgb2gray(i);
-> transforme l'image en niveau de gris
-> tu as cette fois un tableau où 1 point = 1 donnée 8 ou 16 bits suivant la fonction (tu as déjà des pertes de données)

i=im2double(i);
-> ça ne double pas le tableau, ça change seulement le codage de 8 bits en nombres réels classiques (des réels double précision soit "double" en informatique, se sont des réels classiques sur les ordinateurs modernes).

FI=fft2(i);
->FI devient la transformée de fourrier rapide 2D de i
le format de sorti est celui définie dans la fonction fft2 que je n'ai pas

FI_S=abs(fftshift(FI));
I1=ifft2(FI);
I2=real(I1);
-> là, pareil, je n'ai pas les fonctions FI_S, mais ça transforme en un tableau de nombre qui seront affichés ensuite avec subplot
-> I1 semble reprendre la transformée de fourrier Inverse (tableau de nombre réels)
-> I2 n'en garde que la partie réelle

subplot(131),imshow(i),title('original');
-> met un titre à la fenêtre d'affichage
subplot(132),imagesc(0.5*log(1+FI_S)),title('fourier spectrum'), axis off;
-> trace les valeurs des points de la transformée sur une échelle logarithme
subplot(133),imshow(I2),title('reconstructed');
-> trace l'image de la partie réelle de la transformée inverse
la commande "subplot xyz" permet de tracer plusieurs courbes dans une même fenêtre.

hamdimanel
Messages: 3
Enregistré le: 14 Jan 2017, 18:11

Re: la Transformée de Fourrier

par hamdimanel » 22 Mai 2017, 10:43

Merci bcp pascal16 connaissez vous svp comment afficher une image 3D avec les coordonnées sphériques et non pas cartésiennes.

 

Retourner vers ⚜ Salon Mathématique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 12 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite