A voir également:
- Transformé de fourier d'une image
- Transformer une image en icone - Guide
- Légender une image - Guide
- Image iso - Guide
- Reduire taille image - Guide
- Agrandir une image - Guide
7 réponses
Bonjour,
Tu veux tracer le spectre d'une seule ligne ou de l'image totale ?
Il y a un fft2(...) à faire au début, puis un abs pour avoir la valeur absolue et un fftshift pour redresser l'origine de ton image.
Donc pour une image complete, cela donne du abs(fftshift(fft2("image.jpg")));
et pour un profil de ligne tu fais une simple fft apres avoir extrait la ligne je dirai.
Tu veux tracer le spectre d'une seule ligne ou de l'image totale ?
Il y a un fft2(...) à faire au début, puis un abs pour avoir la valeur absolue et un fftshift pour redresser l'origine de ton image.
Donc pour une image complete, cela donne du abs(fftshift(fft2("image.jpg")));
et pour un profil de ligne tu fais une simple fft apres avoir extrait la ligne je dirai.
récupère donc ta première ligne, ensuite tu fais une simple fft et tu affiche la valeur absolue.
ça donne un truc du genre :
I=imread("image.jpg");
[M,N]=size(I);
ligne1=I(:,1);
ligne2=I(:,M/2);
fourier=fft(ligne1);
et ensuite tu affiches, il me semble qu'il y a une fonction qui te fait directement la transformée de Fourier ainsi que l'affichage; sinon tu va galérer à te faire une échelle log...
mais regarde, normalement la fonction est toute faite.
ça donne un truc du genre :
I=imread("image.jpg");
[M,N]=size(I);
ligne1=I(:,1);
ligne2=I(:,M/2);
fourier=fft(ligne1);
et ensuite tu affiches, il me semble qu'il y a une fonction qui te fait directement la transformée de Fourier ainsi que l'affichage; sinon tu va galérer à te faire une échelle log...
mais regarde, normalement la fonction est toute faite.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
plutot imshow(I);
mais ici tu as un profil de ligne, ce n'est donc pas une image que tu veut afficher mais un graphe donc cela ne fonctionnera pas. Il faut que tu fasses comme si tu voulais tracer le diagramme de Bode d'une fonction.
Tu peux par exemple définir un vecteur f=-1000:1000; et faire un plot(f,fourier1); par exemple. Mais le résultat ne sera pas excellent.
C'est étrange qu'on te demande qu'un profil de ligne, normalement pour du traitement d'image on travail sur la fft complète, ça permet de voir les basses fréquences au centre, la HF vers l'exterieur, la valeur moyenne à l'origine, d'appliquer des filtres etc..
mais ici tu as un profil de ligne, ce n'est donc pas une image que tu veut afficher mais un graphe donc cela ne fonctionnera pas. Il faut que tu fasses comme si tu voulais tracer le diagramme de Bode d'une fonction.
Tu peux par exemple définir un vecteur f=-1000:1000; et faire un plot(f,fourier1); par exemple. Mais le résultat ne sera pas excellent.
C'est étrange qu'on te demande qu'un profil de ligne, normalement pour du traitement d'image on travail sur la fft complète, ça permet de voir les basses fréquences au centre, la HF vers l'exterieur, la valeur moyenne à l'origine, d'appliquer des filtres etc..
en fait c'est ça la question:
Essayez de regarder ce qu'il se passe si vous faites la fft sur la ligne N/2 de votre image. Tracez ce spectre.
Effectuez la même opération sur la première ligne de l'image. Conclusion ?
Essayez de regarder ce qu'il se passe si vous faites la fft sur la ligne N/2 de votre image. Tracez ce spectre.
Effectuez la même opération sur la première ligne de l'image. Conclusion ?