Функция cv2.stereoCalibrate () - Ошибка типа: в стереоCalibrate () отсутствует обязательный аргумент - PullRequest
0 голосов
/ 27 февраля 2020

Возможен дубликат , но на него нет ответа: моя часть кода выглядит следующим образом:

(ret, mat1,dist1,mat2,dist2, R, T, E, F) = cv2.stereoCalibrate(
            objpoints1,
            imgpoints1,
            imgpoints2,
            imgsize1, criteria=None, flags=None)

И я получаю следующую ошибку:

TypeError: stereoCalibrate () отсутствует обязательный аргумент 'distCoeffs1' (pos 5)

Согласно документации: Калибровка камеры и реконструкция 3D: cv2.stereoCalibrate () , параметры: «cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2» являются входами / выходами, и нет необходимости передавать их в вызов функции.

См. Цитату ниже:

Если какой-либо из CV_CALIB_USE_INTRINSIC_GUESS, CV_CALIB_FIX_ASPECT_RATIO, CV_CALIB_FIX_INTRINSI C, или CV_CALIB_FIX_FOCAL_LENG, все из указанных или некоторых других компонентов должны быть заданными, некоторые из них должны являться исходными, или все указанные компоненты должны являться определенными. Подробности см. В описании флагов.

Я также видел некоторые приложения, в которых люди опускали эти параметры и позволяли функции их оценивать. Я не вижу, что отличается в моем коде по сравнению с ними и / или как я могу вызвать функцию, чтобы не проверять эти параметры и работать, как указано в документации и в нескольких приложениях, которые доступны онлайн.

Заранее спасибо.

1 Ответ

0 голосов
/ 27 февраля 2020

Документация, на которую вы ссылаетесь, вероятно, относится к гораздо более старой версии, чем вы на самом деле используете. Для последней версии OpenCV (4.2.0) сигнатура функции:

retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F = cv.stereoCalibrate (objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize [, R [, T [, E [, F [, флаги [, критерии]]]]]]

где Пятый аргумент - distCoeffs1, что также сообщается в сообщении об ошибке.

Вам необходимо передать все необходимые аргументы (objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize) в stereoCalibrate().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...