2010-11-18 16 views
5

Le problème que nous essayons de résoudre le problème de la localisation d'un point dans deux représentations différentes d'un plan. Le premier plan que nous avons est tourné pour créer une perspective; la seconde est une vue 2D de ce même plan. Nous avons 4 points sur chacun des plans que nous savons être équivalents. La question est de savoir si nous avons un point arbitraire dans le plan 1, comment trouvons-nous le point correspondant dans le plan 2?Comment projeter un plan arbitraire identifié par 4 points sur un plan 2D?

Il est probablement préférable d'illustrer le cas d'utilisation afin de clarifier au mieux la question. Nous avons une image illustrée sur la gauche.

Projective plane

alt text

diagramme 2D de mise en page de l'espace

alt text

Ainsi, les Givens que nous avons sont les carrés rouges des deux images. Notez que si possible, j'aimerais qu'il soit possible que l'espace 2D ne soit pas nécessairement un carré. Ceux-ci sont disponibles à nous à l'avance et connus. J'ai aussi des points verts disposés sur l'avion dans la première image. J'aimerais pouvoir faire une projection du point dans l'image 1 sur l'espace de l'image 2.

Note aussi pour l'image 1 Je n'ai pas de fenêtre ou de position d'oeil définie. Je sais juste que le carré rouge de l'image 1 est une transformation de l'image de forme carré rouge 2 et que l'image 2 est dans l'espace 2D.

+0

Il est possible que vous ayez (x, y, z) pour vos points de photographie ... ou si vous ASSUMEZ quelques z ... –

+2

Si vous aimez OpenCV, ce problème est connu comme trouver l'homographie ('cv :: findhomography'). Une fois terminé, tout point de votre première image est mappé dans la deuxième vue en appliquant 'x '= Hx' en coordonnées homogènes. –

Répondre

6

Il s'agit d'un cas particulier de recherche de mappages entre des quadrilatères préservant les lignes droites. Ceux-ci sont généralement appelés transformations homographiques. Ici, l'un des quads est un carré, donc c'est un cas spécial populaire. Vous pouvez google ces termes ("quad à quad", etc) pour trouver des explications et du code, mais voici quelques-uns pour vous.

Perspective Transform Estimation

a gaming forum discussion

extracting a quadrilateral image to a rectangle

Projective Warping & Mapping

ProjectiveMappings for ImageWarping par Paul Heckbert.

Les maths ne sont pas particulièrement agréables, mais ce n'est pas si difficile non plus. Vous pouvez également trouver du code à partir de l'un des liens ci-dessus.

+0

Le premier lien a été très utile, merci. – Scott