Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Géométrie projective] Mesures sur une image

déterminer la hauteur d'un batiment pris en photo

    10 novembre 2011 à 11:54:39

    Bonjour,

    J' aimerai à terme faire un outil informatique permettant de connaitre la hauteur (approximative) de bâtiments à partir d'une image.

    Voici l'image qui me servira d'aide pour vous expliquer mon problème:
    Image utilisateur

    Je souhaite qu' à partir de cette image, et en renseignant quelques informations, exprimer la hauteur du bâtiment AD ou BC] (par rapport à la longueur AB par exemple, puisqu' il n' y a pas d' unités. Donc un ratio du style AB/CB)

    La personne devra cliquer pour définir la zone de la façade du bâtiment (points A, B, C et D).

    Donc voila, le but étant de savoir ce ratio sans connaitre d'informations sur la position de "l' oeil", sa focale ou autre...
    Si le système manque d'informations, la personne pourra en rajouter par exemple en rajoutant à la main d'autres points (E et F) tels que (EB) perpendiculaire à (AB) et (BC) et idem pour F. Ce n'est qu'un exemple sur les informations qu'un "humain" pourrait apporter.

    A la fin, en estimant la longueur de la base du bâtiment AB, et en définissant des points qui rajoutent de l'information, le programme lui donnera la hauteur approximative.

    Là, sur la photo par exemple, on peut en déduire:
    (DC) // (AB) // (EF)
    (AB) perpendiculaire à (BC), (BE), (AD), (AF)
    on connait la longueur (réelle) AB (qu' on fixera par exemple).
    Et bien sûr, on connait les longueurs en pixels, et les angles sur l'image.

    Intuitivement, je pense qu' il y a assez d'informations pour retrouver ce ratio, et même que les points E et F ne sont pas forcément nécessaires. Mais s'il en manque, lesquelles? et existe-t-il un moyen de les renseigner à partir de la photo? (sans focale, etc..)

    J'ai essayé de partir de la projection perspective et essayer de retrouver la matrice de projection mais je ne m'en sors pas trop... Mais je me dis que c'est juste la distance réelle entre les points B et C en 3D, et non retranscrire tous les points 2D en 3D (sans la notion de profondeur bien sûr), donc connaitre entièrement la matrice de projection n'est peut être pas nécessaire...

    En gros: help ^^
    Merci beaucoup :)
    • Partager sur Facebook
    • Partager sur Twitter
      10 novembre 2011 à 17:09:17

      Je n'ai pas la réponse à ton problème, juste un lien qui pourrait t'intéresser : http://perception.inrialpes.fr/people/ [...] e-hermes.html
      • Partager sur Facebook
      • Partager sur Twitter
        10 novembre 2011 à 18:06:03

        Honnêtement, je ne vois pas comment tu peux déterminer BC sans connaitre la hauteur d'un repère... :(
        Si il y avait sur l'image un lampadaire dont la hauteur est connue, on aurait pu imaginer extrapoler la hauteur pour BC...

        Connaitre AB n'aide pas à connaitre BC (sauf maison carré :p ) enfin c'est mon avis.

        Par contre ton batiment doit faire 7.5m de haut (en prenant 2.5m par étage) :p

        PS : Je pense qu'il te faut la position de la prise de vue par rapport au point B (ou A), et là on pourrait faire quelque chose.

        • Partager sur Facebook
        • Partager sur Twitter
          17 novembre 2011 à 16:21:44

          @Lanfeust 313: Merci pour le lien, ça complète un peu plus ma bibliographie ;)
          @Untouchable: je pense que même avec la hauteur d'un lampadaire ca ne suffirait pas puisque c'est une projection perspective et du coup selon la position dans l'image, la taille changera.
          Pour la position de la prise de vue par rapport au point B (ou A), je ne la connais pas mais ce n'est pas possible de l' avoir avec les infos données par l' utilisateur (angles/points)?

          Voilà mon cheminement pour le moment:
          C'est une projection perspective suivie d'une transformation caméra/image.
          En coordonnées homogènes et sous forme matricielle, on a:

          (u,v,s) = K*P*(x,y,z,s) avec:
          K la matrice homogène de la transformation caméra/image,
          P la matrice de projection perspective,
          u et v les coordonnées images du point (x,y,z) en 3D.

          seulement je voudrais l'inverse. ^^
          Donc, si (K*P) est inversible:
          (x,y,z,s) = inv(K*P) *(u,v,s)

          on perd en information (profondeur) mais à la limite on s'en fout car on veut juste la distance entre 2 points, non ?
          Je m'embrouille un peu...
          C'est fort probable que je m'y prenne mal également car je ne me sert pas du tout des informations des points que je place sur l'image.. :(
          • Partager sur Facebook
          • Partager sur Twitter

          [Géométrie projective] Mesures sur une image

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown