2013-04-19 2 views

Répondre

9

calibrateCamera() retourne vous
une matrice de 3x3 comme cameraMatrix,
une matrice de 4x1 comme distCoeffs, et rvecs et tvecs qui sont des vecteurs de matrices rotation 3x1 (R) et de la transformation 3x1 (t).

Ce que vous voulez, c'est ProjectionMatrix, qui est multiplier [cameraMatrix] par [R | t]. 3D into 2D Projection

Par conséquent, il vous revient une ProjectionMatrix 3x4. Vous pouvez lire OpenCV documentation pour plus d'informations.

+0

Vous dites que nous avons une rotation de 3x1, mais dans la formule ci-dessous, elle est de 3x3 (r_11, ..., r_33). Comment est-ce possible? Pouvez-vous ajouter du code C++ pour calculer la matrice de projection à partir de camMatrix (3x3) et distMatrix (4x1)? – Dennis

+0

Je dois appeler la fonction 'Rodriguez', n'est-ce pas? – Dennis

+0

c'est exact, Rodriguez convertit le vecteur de rotation en matrice de rotation que vous pouvez utiliser dans la formule ci-dessus – Thesane

Questions connexes