2011-09-17 6 views
6

J'ai essayé de comprendre comment prendre une homographie entre deux plans et la convertir en une projection projective. Matlab le fait automatiquement, mais j'ai essayé de comprendre comment matlab implémente la conversion.Homographie à transformée projective

+0

De quelle fonction MATLAB parlez-vous? – Jacob

+0

J'ai calculé l'homographie en utilisant une transformation linéaire directe. Je me demandais comment fonctionne maketform ('projective', homographyMat). Merci! –

Répondre

2

Une homographie est une transformée projective qui mappe les lignes sur les lignes, conserve le rapport croisé, mais ne conserve pas le parallélisme ou d'autres grandeurs de similarité (angles, distances, etc.). Une homographie peut être exprimée sous la forme d'une matrice 3x3 homogène, et calculée de nombreuses façons (vraiment, beaucoup) différentes en fonction de votre problème.

La plus courante consiste à déterminer les correspondances à 4 points entre les deux plans et à utiliser la transformation linéaire directe (DLT). Il existe également de nombreuses implémentations du DLT. Si vous êtes familier avec OpenCV, vous pouvez facilement obtenir une telle matrice d'homographie en utilisant cv::findHomography (http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html?highlight=findhomography#findhomography).

En général, je vous recommande de jeter un oeil au livre "Multiple View Geometry" de Hartley & Zisserman, qui explique en détail le concept d'homographies dans le contexte de la vision par ordinateur.

3

Vous pouvez consulter le code source dans la boîte à outils \ images \ images \ maketform.m

au moins dans l'éditeur, vous pouvez arriver à ce en appuyant sur F4 sur le nom de la fonction.

Questions connexes