Je suis capable de calculer le calibrage de la caméra en utilisant OpenCV en Python. Cependant, ce dont j'ai vraiment besoin, c'est la matrice de projection. En regardant les équations de la docs, il semble que ce soit P = K[R|T]
où K est la matrice intrinsèque, R est la matrice de rotation, et T est le vecteur de traduction. C'est le code que j'ai fait pour calculer la matrice de projection:OpenCV: Comment trouver la matrice de projection à partir de la sortie calibrateCamera()?
ret, matrix, distCoef, rvecs, tvecs = cv2.calibrateCamera([world_points], [corners], gray.shape[::-1], flags=cv2.CALIB_USE_INTRINSIC_GUESS)
K = matrix
R = cv2.Rodrigues(rvecs[0])[0]
T = tvecs[0]
RT = np.concatenate((R,T),axis=1)
P = np.dot(K, RT)
Est-ce correct? À ma connaissance, je devrais être capable de le vérifier en faisant P * [x; y; z; 1] où (x, y, z) est un point du monde, et la sortie doit être la coordonnée de pixel correspondante. J'ai essayé ceci, mais les sorties semblent très fausses. Est-ce que cela signifie que c'était un mauvais calibrage, ou ai-je construit incorrectement P?