я получаю следующее сообщение об ошибке при попытке откалибровать камеру с помощью cv2.calibrateCamera:входные аргументы cv2.calibrateCamera питона
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
я изначально имел NX3 и массив NX2 для pts3d и pts2d. Затем я попытался изменить pts3d и pts2d в следующем виде, как функция принимает векторы векторного Point3d (и, соответственно, pts2d) в качестве входных данных:
[1 хпх 3] и [1 хпх 2]
[Kxn» х 3] и [Kxn»х 3], где к случайному значению
[1 хпе 1 х 3] и [1 хпх 1 х 2]
ничего не работает, и это всегда дает ту же ошибку.
Я видел код кода кода камеры, который работает отлично, и их вход имеет значение [k x n x 3]. Я действительно не знаю, что не так с моей реализацией. Ниже приводится мой код, который должен быть точным:
#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)
ошибка происходит во время вызова функции. Было бы неплохо узнать, что здесь может быть неправильным.
Хотя эта ссылка может ответить на вопрос, лучше включить основные части ответа здесь и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. – NathanOliver
Спасибо за комментарий. Я добавил основные шаги. – Csega