Проблемы с библиотекой Aruco в Debian 9.5 — OpenCV

#python #python-2.7 #opencv #debian

Вопрос:

Я пытаюсь обнаружить маркеры Aruco через свою камеру, используя OpenCV для Python 2.7 в Debian 9.5, но я не могу запустить свой код из-за ошибки, связанной с cv2.aruco.detectMarkers() . Запустив его в Windows, у него нет никаких проблем. В частности, я написал в своем коде:

 cv2.aruco.detectMarkers(image=gray, dictionary=aruco_dict, parameters=parameters, 
                         cameraMatrix=camera_matrix, distCoeff=camera_distortion)   
 

где camera_matrix и camera_distortion соответственно матрица камеры и параметры искажения камеры, полученные при калибровке камеры.

Точнее, ошибка говорит о том, что для функции нет cameraMatrix входного параметра cv2.aruco.detectMarkers . Как мне решить эту проблему? Заранее большое вам спасибо.

Ответ №1:

Возможно, ваша ошибка связана с вашей opencv версией. Проверьте это с помощью:

  cv2.__version__
 

Более старые версии opencv (например, 3.2.0, возможно, это ваша версия по умолчанию для Debian 9) не имеют cameraMatrix или distCoeff в качестве входных параметров cv2.aruco.detectMarkers функции.

Если вы заинтересованы в получении более новых версий opencv для вашей ОС (например, 4.1.0.25), вам необходимо сделать:

 sudo pip install opencv-contrib-python==4.1.0.25
 

Если это не так, просто удалите cameraMatrix и distCoeff из ваших входных данных, он все равно запустится.