Scilab : Transformée de Fourier 2D et FFT 2D
Par Jonathan Lermitage le jeudi 11 janvier 2007, 16:17 - Autres langages, standards et systèmes - Lien permanent
Voici le code vous permettant de calculer la transformée de Fourier classique d'une image (transformée 2D), ainsi que la transformée de Fourier rapide (FFT) d'une image (code de la FFT 1D et application 2D).
Ca se passe sous MS Windows avec Scilab 4.0, la bibliothèque de traitement de l'image SIP (SIP Toolbox 0.4.0 beta) et quelques librairies (DLL) fournies avec ImageMagick 6.3.1-0-Q16.

Télécharger Scilab et les composants utiles
- Scilab version 4.0, sur : http://www.scilab.org.
La version actuelle étant la 4.1, la page des anciennes distributions est la suivante : http://www.scilab.org/[...]oldReleases.html. - SIP Toolbox version 0.4.0 (il existe une version fournie avec un installeur, cherchez sur la droite :
Windows Installer BETA
) : http://siptoolbox.sourceforge.net. - Les librairies fournies avec ImageMagick 6.3.1-0-Q16 : http://www.imagemagick.org. Cherchez sur la gauche Ã
Bynary Releases
,Windows
, puisImageMagick-6.3.1-0-Q16-windows-dll.exe
. Les DLL sont à décompresser dans le dossier System32 de votre installation Windows.
Sans ces librairies, SIP ne pourra pas se charger.
Le code Scilab de la transformée de Fourier 2D
Le code Scilab permettant de calculer la transformée de Fourier 2D.
Dans cet exemple on commence par charger SIP (vous corriger le chemin de SIP au besoin), puis on applique la transformée sur une image jpg.jpg
située à la racine du lecteur C
(là aussi, corrigez le chemin et l'image au besoin).
Cliquez ici pour voir le code.
Le code Scilab de la FFT 1D, et application 2D
Le code de la fonction FFT 1D, cliquez ici pour voir le code.La FFT 2D se calcule à l'aide du fichier ci-dessus, et du code principal : cliquez ici pour l'obtenir. Ce dernier fichier charge la fonction FFT 1D, corrigez son chemin au besoin.
Aller, que les Maths soient avec vous :)
Codes réalisés en binôme (avec mon camarade Arnaud K.) pour le projet d'Image, 3ème année de licence Informatique à l'Université de Dijon.
Bienvenue chez un

Commentaires
Beau Tuto. dommage que cela reste des maths :)
Super boulot, je galère pour installer ImageMagick avec SCILAB, lorsque j'exécute le builder et le loader j'ai des erreurs de linkage ( sans doute car Image Magick n'est pas dans le dossier sys32 ).
Si tu veux j'ai fait un programme sous Matlab pour calculer une DCT que je vais transposer sous SCILAB.
Salut.
Salut,
Concernant ImageMagick, il suffit en effet de mettre ses DLL dans le dossier system32.
En réalité tu peux ne garder que les DLL et virer ensuite ImageMagick (à vrai dire j'aurais bien hébergé les DLL utiles, mais je doute un peu du coté légal de la pratique).
Pour la DCT, je suis très intéressé ! :)
Bonne continuation et merci.
Connais-tu la modestie?
@pierre
Tu peux développer ?
Merci beaucoup, comme tout le monde j'avais le même problème...
Je me suis pas posé de question j'ai copié les 8Mo de dll dans System32 et ca marche :)
(c'est vrai qu'une petite liste synthétique serait la bienvenue....)
Merci encore !
Tony
J'ai présentement un problème pour exécuter le script fft_optim.sci tel quel. En effet, sur le scilab installé sur mon poste de travail, les deux lignes (identiques) suivantes me posent problème:
LigneImage(l)=img(l,h);
Chez moi, il faut que j'inverse les deux coordonnées:
LigneImage(l)=img(h,l);
sans quoi un problème d'index rend l'execution impossible.
Est-ce un changement de Scilab entre le moment où ce script a été écrit et aujourd'hui? (j'utilise pourtant Scilab 4.0, comme indiqué plus haut)