OpenCV Aruco оценкаPoseSingleMarkers Python

Я пытаюсь найти маркеры aruco, используя w10, python 3.6, opencv2.

Я могу обнаружить маркеры, но не могу выполнить этот шаг

rvec, tvec = aruco.estimatePoseSingleMarkers(corners, markerLength, camera_matrix, dist_coeffs) # For a single marker

Я получаю это исключение Python:

ValueError: too many values to unpack (expected 2)

исключение tvec в списке результатов не приводит к ошибке, но тогда у меня нет информации о переводе.


person juerg    schedule 23.09.2017    source источник


Ответы (2)


У меня была такая же проблема, похоже, есть 3 массива, которые нужно распаковать, поэтому попробуйте это

rvec, tvec, _ = aruco.estimatePoseSingleMarkers(corners, markerLength, camera_matrix, dist_coeffs)

Не уверен, о чем идет речь в третьем массиве.

person Sahil Anand    schedule 13.10.2017
comment
Третье возвращаемое значение - _objPoints: массив точек объекта всех углов маркера. docs.opencv.org/3.46a/d9/ - person Steve Osborne; 16.08.2018

используйте только одну переменную, чтобы получить то, что возвращает aruco.estimatePoseSingleMarkers. затем возьмите только первые два значения, как в приведенном ниже коде.

ret = aruco.estimatePoseSingleMarkers(corners,marker_size,cameraMatrix=cameraMatrix,distCoeffs=cameraDistortion)
(rvec, tvec) = (ret[0][0, 0, :], ret[1][0, 0, :])
person Nusri    schedule 08.11.2020