2012-10-31 5 views
5

Je travaille sur la reconstruction 3D. Et maintenant, quand je considère une paire d'images. J'ai un ensemble de points correspondants. et j'ai mes détails de caméra. Par exemple j'ai les détails de mise au point, la rotation et la matrice de traduction (4 * 4). et je veux projeter mes points en 3D (triangulation). Donc, autant que j'ai appris à connaître son assez simple par l'algèbre factorielle. Mais j'ai encore besoin de le comprendre clairement. Est-ce que quelqu'un a une idée sur la façon de suivre cela? Je travaille à matlab donc j'ai besoin de mettre en œuvre cela! Je peux être encore trop large ou peu importe. Mais s'il te plaît, guide-moi!Reconstruction 3D à partir d'images de caméra calibrées

+0

encore trop large et vague. nous sommes là pour vous aider, pas pour vous enseigner tout le processus ou faire tout le travail pour vous. –

Répondre

0

Vous aurez besoin de calculer une matrice de caméra à partir de vos attributs de caméra connus; Il s'agit d'une matrice de projection de mise à l'échelle qui mappe un point homogène 3D sur vos coordonnées de pixels 2D. (Notez que si vous voulez une précision correcte, vous devrez également mesurer et rectifier systématiquement la distorsion de l'objectif de votre appareil photo.)

Ensuite, multipliez la matrice de votre caméra avec votre matrice de pose (la rotation 4x4)/matrice tranlation vous avez mentionné) pour obtenir une matrice (par exemple T pour le total) qui projette un point dans votre choisi système de coordonnées 3D dans les (coordonnées de pixels rectifié) de votre appareil photo:

pixel vector Q.x = T * point P.x 
      Q.y    P.y 
      Q.z    P.z 
      Q.w    1 

pixel coordinates = (Q.x/Q.w, Q.y/Q.w) 
"pixel depth" = Q.z/Q.w 

vous pouvez inverser cette matrice, et l'utiliser pour projeter des coordonnées de pixels en rayons 3D en choisissant deux profondeurs: une à l'emplacement de la caméra, et une autre qui ne l'est pas (mieux choisir la profondeur de l'unité ou le point à l'infini). Vous ne pouvez pas vous attendre à ce que vos rayons se croisent exactement, mais vous pouvez obtenir un emplacement optimal en fonction de l'endroit où les deux rayons correspondants sont les plus proches; plus généralement, vous pouvez traiter l'intersection d'un nombre arbitraire de rayons comme un problème des moindres carrés (idéalement, en fonction de l'erreur attendue de chaque rayon).

Questions connexes