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 :

Recalage d'image par la Transformée de Fourier (Prob de Dimension des images)


Sujet :

Traitement d'images

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut Recalage d'image par la Transformée de Fourier (Prob de Dimension des images)
    Bonjour
    Le but est de recaler deux images avec une précision de 1/100. (pour le moment je travaille avec une précision d'un pixel)
    Tout d'abord, je vous explique brièvement ce que je fais pour faire le recalage en utilisant la méthode de corrélation de phase :
    1- Je calcule les transformées de Fourier des image 1 et 2.
    2- Je calcule la matrice de corrélation normalisée en multipliant le TF de l'image 1 par le complexe conjugué de la TF de l'image 2 et je divise par leurs normes.
    3- Je calcule la TF inverse de la matrice de corrélation et je cherche les coordonées du pic (qui correspond à DeltaX et DeltaY)

    Ma question est à propos des dimensions de l'image..
    - Si les deux images ont la même dimension : Dois-je travailler avec ces même dimension ou les rendre une puissance de 2. (Car j'ai lu que la TF est effectuée plus rapidement si les dimensions sont puissances de 2)

    J'ai essayé les deux choix:
    avec le premier choix (dimension 1051x1028) j'obtiens un DeltaX=1 pixel et un DeltaY=916 pixels (ce qui bcp)
    avec le deuxieme choix (dimension 2048 x 2048) j'obtiens un DeltaX =1106 (ce qui est bcp) et DetaY=2 pixels

    What's happen ?

    Merci

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    What is happenning ?

    Je ne sais pas. Que tu utilises des puissances de 2 ou pas, tu devrais obtenir le même résultat. Là, on ne sait pas ce qui se passe parce que tu n'as pas vérifié si ta méthode marchait effectivement. Teste donc sur une image simple où tu connais le décalage.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    J'ai effectivement testé les deux.. et comme vous pouvez constatez.. ca me donne pas les mêmes résultats, Je reprends l'exemple cité:

    avec (dimension 1051x1028) j'obtiens :
    DeltaX = 1 pixel et DeltaY=916 pixels (ce qui est trop)
    avec (dimension 2048 x 2048) j'obtiens :
    DeltaX =1106 (ce qui est trop) et DetaY=2 pixels

    Je devrais avoir un Detax et DeltaY très petit (1 ou 2 pixels max) puisque les images sont presque identiques

    Merci d'avance

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Tu as un programme qui résout ton problème, nous, on ne l'a pas. Tu dois tester sur une image petite et analyser la matrice de covariance, regarder de nouveau la théorie et la pratique pour voir pourquoi la matrice de covariance ne répond pas à ton problème.

  5. #5
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut zero padding
    bjr,

    est-ce que tu as fait du zéro-padding autour de ton image ?
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Bonjour

    Oui je le fais de la façon suivante:
    Je lis les dimensions de l'image (ex: 1051x1028), ensuite je les agrandits pour avoir une puissance de 2 (ex: 2048x2048).
    Je crée un tableau de (2048x2048) et je l'initialise en metteant 0 partout. Enfin, je lis l'image et je met les (1051x1028) valeurs dans le tableau créé.
    "Donc, le reste du tableau contient des 0"

    Est-ce que la méthode est bonne?

  7. #7
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Programmeur_Aladdin Voir le message
    Bonjour

    Oui je le fais de la façon suivante:
    Je lis les dimensions de l'image (ex: 1051x1028), ensuite je les agrandits pour avoir une puissance de 2 (ex: 2048x2048).
    Je crée un tableau de (2048x2048) et je l'initialise en metteant 0 partout. Enfin, je lis l'image et je met les (1051x1028) valeurs dans le tableau créé.
    "Donc, le reste du tableau contient des 0"

    Est-ce que la méthode est bonne?
    Oui, ça devrait être bon. en principe le zéropading doit être au moins égal à la taille de l'image dans chaque sens, ce qui est quasiment ton cas. ton erreur ne semble donc pas venir d'un problème de padding (je suppose que ton image initiale est dans un des coins de l'image finale pleine de zéros n'est-ce pas ?)
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Je pense avoir trouvé mon problème
    Il s'agait des impérfections ds mes images.. aux contours des images il y a qlq imperfections qui ont faussé selon ma théorie les calculs.
    Donc, je sélectionne une partie qui n'a pas de problème ds l'image et je la traite avec ma méthode et ca donne un bon résultat..
    Pour cela j'ai utilisé fits_read_subset() qui permet de choisir un point de depart et un point de corner pour faire la sélection.

    Prochaine étape.. augmenter la précision..

    Merci tout le monde

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/05/2013, 16h29
  2. La transformée de Fourier et le traitement d'images
    Par mehdiing dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 18/03/2011, 07h57
  3. Transformée de Fourier pour le traitement d'images
    Par millie dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 15/03/2011, 11h15
  4. décomposition d'image par la transformée en ondelettes
    Par tapouni dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 07/04/2008, 09h33

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