j'obtiens l'erreur suivante lorsque je tente de calibrer l'appareil photo à l'aide cv2.calibrateCamera:arguments d'entrée de la cv2.calibrateCamera python
rms, camera_matrix, dist_coefs, rvecs, tvecs = cv2.calibrateCamera(pts3d, pts2d, self.imgsize, None, None)
cv2.error: /home/sarkar/opencv/opencv/modules/calib3d/src/calibration.cpp:2976: error: (-210) objectPoints should contain vector of vectors of points of type Point3f in function collectCalibrationData
J'avais d'abord NX3 et tableau de NX2 pour pts3d et pts2d. Je puis essayé de remodeler pts3d et pts2d sous la forme suivante en tant que fonction prend des vecteurs du vecteur point3d (et de manière correspondante pts2d) en entrée:
[1 XNX 3] et [1 XNX 2]
[kxn » x 3] et [kxn » x 3], où k est une valeur aléatoire
[1 XNX 1 x 3] et [1 XNX 1 x 2]
rien ne fonctionne et il donne toujours la même erreur.
J'ai vu le code d'exemple de code de cameraclibration fourni qui fonctionne bien, et leur entrée est de [k x n x 3]. Je ne sais vraiment pas ce qui ne va pas avec ma mise en œuvre. Voici mon code pour être précis:
#data contains [n x 5] dim array which is the hstacked arrays of pts3d and pts2d correspondences I obtained elsewhere.
pts3d = data[:, 0:3] #first 3 column
pts2d = data[:, 3:5] #next 2 column.. I checked the values are coming correctly
pts3d = pts3d.reshape(1,-1, 3) #Here, I have experimented by resizing with different values.
pts2d = pts2d.reshape(1,-1, 2)
rms, camera_matrix, dist_coefs, rvecs, tvecs = cv2.calibrateCamera(pts3d, pts2d, self.imgsize, None, None)
l'erreur se produit au moment de l'appel de la fonction. Ce serait bien de savoir ce qui ne va pas ici.
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. – NathanOliver
Merci pour le commentaire. J'ai ajouté les principales étapes. – Csega