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

Algorithmes et structures de données Discussion :

Toujours problème de perspective :-(


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 66
    Points : 40
    Points
    40
    Par défaut Toujours problème de perspective :-(
    Bonjour,

    je possède une image d'une grille plate (sur feuille) prise en photo. Seulement le plan de l'objectif n'étant pas forcément parallèle au plan de la feuille, j'aimerais pouvoir reconstruire la grille plate (telle que sur la feuille) à partir de l'image déformée par la perspective.

    J'ai déjà posé la question auparavant, avec des réponses assez bien documentées, mais assez complexe, surtout vu le temps qui me reste à disposition.

    J'admets que je peux connaître le couple (p,p'), p étant le point sur mon image déformée et p' celui correspondant sur la feuille. Est-il possible grâce à plusieurs couples de points appariés, de retrouver la matrice de transformation correspondante ?

    En simplifiant (même si cela est pas possible, c'est juste pour que vous compreniez mon besoin), quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    p' = p*MatriceTransf;
    MatriceTransf = p'/p;
    Sinon, grâce aux informations que me donne la perspective (point de fuite, angle,...) puis-je trouver dans un premier temps la position de l'appareil photo, et grâce à ça pouvoir retrouver les coordonnées 3D des points de ma grille (où y sera tjrs 0).

    Merci de m'avoir lu jusque là et n'hésitez pas si vous avez des idées, des liens voire même des solutions.

  2. #2
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    Salut ! (et oui c'est encore moi )

    J'admets que je peux connaître le couple (p,p'), p étant le point sur mon image déformée et p' celui correspondant sur la feuille. Est-il possible grâce à plusieurs couples de points appariés, de retrouver la matrice de transformation correspondante ?
    Oui... c'est uniquement par des algos d'optimisation que c'est possible !! cf le post d'avant donc... Désolé donc, mais si tu veux calculer ta matrice de transformation, il va falloir te plonger dans les algos d'optimisation !!

    Sinon, grâce aux informations que me donne la perspective (point de fuite, angle,...) puis-je trouver dans un premier temps la position de l'appareil photo, et grâce à ça pouvoir retrouver les coordonnées 3D des points de ma grille (où y sera tjrs 0).
    En théorie je crois que oui... A vérifier.

    A+
    "Cultiver les sciences et ne pas aimer les hommes, c'est allumer un flambeau et fermer les yeux." Proverbe chinois

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2004
    Messages : 137
    Points : 116
    Points
    116
    Par défaut Re: Toujours problème de perspective :-(
    Citation Envoyé par gmonta
    J'admets que je peux connaître le couple (p,p'), p étant le point sur mon image déformée et p' celui correspondant sur la feuille. Est-il possible grâce à plusieurs couples de points appariés, de retrouver la matrice de transformation correspondante ?

    Sinon, grâce aux informations que me donne la perspective (point de fuite, angle,...) puis-je trouver dans un premier temps la position de l'appareil photo, et grâce à ça pouvoir retrouver les coordonnées 3D des points de ma grille (où y sera tjrs 0).

    Merci de m'avoir lu jusque là et n'hésitez pas si vous avez des idées, des liens voire même des solutions.
    De solutions, je n'en ai point, désolé !

    Cependant, j'ai quelques remarques à faire.

    Tout d'abord, je conteste que la transformation soit affine ! C'est tout à fait impossible. L'image prise par un appareil photo est une projection conique. Or si une transformation affine transforme un vecteur de l'espace AB en un vecteur sur l'image ab, elle transformera un vecteur de l'espace CD égal à AB en un vecteur de la photo cd qui sera égal à ab. Il est clair que ce n'est pas le cas pour une projection conique ! Les objets qui sont loin sont petits, ceux qui sont près sont gros : cela suffit à montrer qu'il ne s'agit pas d'une transformation affine.

    En deuxième lieu, il est clair que puisqu'il s'agit d'une projection, si un point de l'espace n'a qu'une seule projection sur la photo, un point de la photo correspond au contraire à une infinité de points différents de l'espace : la transformation qui à tout point de l'espace à trois dimension associe son image dans la photo ne peut donc être inversible.

    Cela dit, j'ai un résultat à te soumettre. Il se trouve que j'ai un peu étudié le problème pour réaliser des dessins en perspective conique à la main dans mon jeune temps (était-ce avant la guerre ou après ? Je suis sûr qu'il n'y avait pas de PC à cette époque !!!).

    Si tu trouves trois points de fuite sur ta photo, correspondant à trois directions orthogonales de l'espace (avec les traits de la grille, tu devrais en trouver deux facilement, pour le troisième, c'est loin d'être évident !) - je les appelle X,Y et Z - alors le centre C de la projection (la position dans l'espace de l'appareil photo) est le point tel que CX est orthogonal à CY, chacun des deux vecteurs étant à son tour orthogonal à CZ. Le point C a pour projection orthogonale sur le papier le point qui est l'orthocentre (intersection des trois hauteurs) du triangle XYZ de ta photo. Une fois que tu as le point C, tu peux modéliser la transformation directe : celle qui a tout point de l'espace fait correspondre un point de la photo. Par contre pour opérer la transformation inverse, il faut trouver un moyen de trouver l'information manquante sans laquelle une infinité de points de l'espace correspondent à un point de ta photo : ça je ne sais pas comment faire !

    C'est pourquoi j'ai dit au début, que je n'avais pas la solution !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 66
    Points : 40
    Points
    40
    Par défaut
    C'est bien ce que je craignais mathieu_t....
    J'ai fait un peu des recherches sur les moindres carrés.
    J'ai quand meme un peu du mal à comprendre...Et la matrice de transformation aura vraiment la structure que tu m'avais donné ou c'était juste un exemple fictif ?

    ceugniet, pour trouver un 3e point de fuite...c'est loin d'être évident...parce que c'est vraiment possible à partir d'une grille plate ?? il me faudrait une 3e dimension non ?

  5. #5
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2004
    Messages : 137
    Points : 116
    Points
    116
    Par défaut
    Citation Envoyé par gmonta
    ceugniet, pour trouver un 3e point de fuite...c'est loin d'être évident...parce que c'est vraiment possible à partir d'une grille plate ?? il me faudrait une 3e dimension non ?
    C'est ce que je dis : c'est loin d'être évident. Si tu prends la photo d'une rue, la rue te donne un premier point de fuite, avec un peu de chance, une rue perpendiculaire t'en donne un deuxième et les verticales des maisons un troisième : facile ! Mais si tu prends en photo une grille de su doku, je suppose que tu n'as pas de rue en arrière plan (!) et c'est pour cela que je dis que ce n'est pas évident.

    La photo contient suffisamment d'information pour qu'il n'y ait qu'une seule position possible pour ton troisième point de fuite : en fait, pour tracer tes deux premiers points de fuite, tu n'utilises pas des indications de longueurs de segments : seulement des directions de droites, les indications de longueurs données par ta grille sont probablement suffisantes pour qu'une seule position soit possible pour ce troisième point : malheureusement je ne sais comment faire pour en tirer parti.

    Si les déformations induites par l'inclinaison de l'appareil photo ne sont pas trop importantes, je me demande si tu ne pourrais pas repérer les cases de ta grille et faire plus simplement une interpolation linéaire à l'intérieur de chaque case. Ce ne serait plus parfait, mais peut-être suffisant quand même pour tes besoins ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 66
    Points : 40
    Points
    40
    Par défaut
    Ah ouais je pense que ce serait jouable le coup d'interpoler le contenu des cases. J'vais y songer.

    Là j'ai repris la technique de mathieu_t, avec les moindres carrés, j'ai trouvé un site pas trop mal grâce auquel je pense réussir à adapter mon problème. En +, GIMP donne la matrice de transformation lorsque qu'on change la perspective. Je pense que je pourrai déduire les paramètres de la matrice...

    Merci de ton aide en tout cas !

  7. #7
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    Re..

    Alors au fait oui je m'étais trompé, c'est pas affine mais bien perspective... D'où les termes f et g qu'il n'y a pas en affine...

    J'ai quand meme un peu du mal à comprendre...Et la matrice de transformation aura vraiment la structure que tu m'avais donné ou c'était juste un exemple fictif ?
    Oui c'est bien la tête qu'elle aura...

    En fait, ce qu'il faut bien comprendre, c'est qu'un algo d'optimisation permet d'avoir une estimation plus robuste des transformations à appliquer que si on calculait la transformation avec 5 équations (on a 5 inconnues donc 5 équations linéairement indépendantes trouvées avec 2 couples de points).
    Le problème avec la 2è solution, c'est que l'on ne trouve la transformation QUE pour 2 couples, donc c'est vachement dépendant de ces deux couples. Comme une estimation de transformation n'est jamais parfaite, prendre plus de 2 couple c'est mieux...

    A+
    "Cultiver les sciences et ne pas aimer les hommes, c'est allumer un flambeau et fermer les yeux." Proverbe chinois

Discussions similaires

  1. Toujours problème d'ouverture page html
    Par cmail dans le forum IGN API Géoportail
    Réponses: 6
    Dernier message: 30/05/2009, 10h29
  2. [débutant] problème de perspective
    Par pingoui dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 07/10/2008, 15h17
  3. Flot optique et problème de perspective
    Par hakemass dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 09/09/2008, 12h29
  4. Problème de perspective
    Par Kevindjg dans le forum OpenGL
    Réponses: 3
    Dernier message: 07/12/2007, 17h11
  5. Toujours problème de lien avce la lib Cblas
    Par Kirou dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 19/06/2007, 14h50

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