IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement d'images Discussion :

FFT et convolution


Sujet :

Traitement d'images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut FFT et convolution
    Bonjour,

    je souhaitais utiliser la FFT pour accélérer mes filtrages par convolution.
    Je fais donc la procédure suivante :
    - Transformation de la taille de mon image en puissance de 2 supérieure
    - Padding de mon image (centrage) sur les nouvelles dimensions.
    - FFT sur l'image.
    - Padding et FFT sur mon masque de convolution (avec les nouvelles dimensions de l'image).
    - Multiplication de mes deux résultats dans l'espace de Fourier.
    - FFT inverse du résultat.
    - Unpadding pour tout remettre dans mon image résultat.

    Malheureusement, cela ne fonctionne pas pour des images non carrées ou non dyadiques :-(
    J'ai testé deux algorithmes différents (Butterfly et Fast Hartley Transform de ImageJ), mais j'ai les même problèmes.

    Y a t-il une solution pour gérer ce problème ?
    Ou connaitriez vous des algorithmes qui gèrent correctement les images non dyadiques ?

    Merci par avance
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Malheureusement, cela ne fonctionne pas pour des images non carrées ou non dyadiques :-(
    J'ai testé deux algorithmes différents (Butterfly et Fast Hartley Transform de ImageJ), mais j'ai les même problèmes.
    Hum...

    Pour les images non carrées et étant donné que la FFT 2D est séparable en deux FFT 1D, il n'y a normalement pas de problèmes.

    Pour ce qui est des dimensions non dyadiques, le padding est censé régler le problème. Pour ma part, je fais du padding d'un seul coté de l'image (pas de centrage). De plus, la taille du padding doit non seulement permettre d'obtenir une dimension dyadique, mais doit aussi etre plus grande que la taille du masque (afin d'éviter les echos au bords de l'image).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre très actif
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Par défaut
    Pourquoi ne pas définir le filtre dans l'espace de Fourier ? C'est plus "physique" et ça peut éviter des erreurs.
    Qu'entends-tu par "celà ne fonctionne pas" ?
    Qu'obtiens tu si tu ne fais pas de filtrage, juste les FT ?

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Hum...

    Pour les images non carrées et étant donné que la FFT 2D est séparable en deux FFT 1D, il n'y a normalement pas de problèmes.

    Pour ce qui est des dimensions non dyadiques, le padding est censé régler le problème. Pour ma part, je fais du padding d'un seul coté de l'image (pas de centrage). De plus, la taille du padding doit non seulement permettre d'obtenir une dimension dyadique, mais doit aussi etre plus grande que la taille du masque (afin d'éviter les echos au bords de l'image).
    Merci... je vais vérifier que mes décompositions sont bonnes.

    Par curiosité, quel algorithme utilises tu ?
    J'ai testé deux algorithmes différents et il y a des écarts.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Merci... je vais vérifier que mes décompositions sont bonnes.

    Par curiosité, quel algorithme utilises tu ?
    J'ai testé deux algorithmes différents et il y a des écarts.
    Outre mes routines perso ( parfois en brut-force O(n²) ), j'utilise souvent JTransforms. Cette librairie gère le 1D, 2D, 3D, implémente la DFT, DCT/DST, DHT et s'occupe de faire le padding.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Merci, je vais tester cette librairie pour être certain d'avoir quelque chose de fiable. On verra à quel point je peux m'interfacer ;-)

    Sinon, j'aimerai quand même comprendre ce qui ne fonctionne pas dans mes deux algorithmes.
    - j'ai bien la bijection => FFTinv(FFT(image)) = image.
    - pour une convolution (simple filtre moyenne) par un grand masque (51), j'ai un écart moyen de 2 niveaux de gris par pixel pour la FHT et 4 pour l'algorithme Butterfly.
    - mais lorsque je réduis la taille du masque à 5, j'ai ce souci.
    - et lorsque l'image n'est pas dyadique, cela devient l'horreur.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    - mais lorsque je réduis la taille du masque à 5, j'ai ce souci.
    - et lorsque l'image n'est pas dyadique, cela devient l'horreur.
    hum... questions bêtes, mais sait-on jamais:

    - Est-ce que les données de ton masque sont bien centrées autour de (0,0). Ou a l'inverse, est ce que tu as bien recentré ton image dans l'espace de fourier ?

    - Est ce que tu as bien fait une multiplication 'complexe' dans l'espace de fourier ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convolution FFT algorithme
    Par samtheh dans le forum Traitement du signal
    Réponses: 18
    Dernier message: 07/03/2012, 09h09
  2. FFT et convolution
    Par feynman dans le forum Fortran
    Réponses: 0
    Dernier message: 27/12/2009, 23h51
  3. [Traitement du signal] Convolution en passant par la FFT
    Par parp1 dans le forum Traitement du signal
    Réponses: 8
    Dernier message: 25/04/2006, 13h26
  4. [Numarray]Convolution par FFT
    Par parp1 dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 22/04/2006, 09h45
  5. Algos pour Convolution et FFT
    Par mensouille dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 17/08/2005, 18h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo