Нет модуля с именем 'cv2.aruco' - PullRequest
       12

Нет модуля с именем 'cv2.aruco'

0 голосов
/ 10 октября 2018

У меня есть небольшая проблема при попытке использовать Aruco на Raspberry Pi 3.
Я использую Python 3.5 на безголовой версии Raspbian, и я следовал этому руководству, чтобы установить OpenCV с opencv_contrib - что, насколько я понимаюсодержит все пакеты:

https://www.pyimagesearch.com/2015/07/27/installing-opencv-3-0-for-both-python-2-7-and-python-3-on-your-raspberry-pi-2/

OpenCV установлен без каких-либо проблем, я могу импортировать его в Python, и он отлично работает.Мне нужно использовать Aruco для проекта, и когда я пытаюсь импортировать его, я получаю эту ошибку:

Traceback (most recent call last):
  File "<stdin>", line1, in <module>
ImportError: No module named 'cv2.aruco': 'cv2' is not a package

У меня была такая же проблема, поэтому я прошил SD-карту и начал новую установку, но это происходит снова,Из предыдущего вопроса, который я нашел здесь, я попытался установить opencv_contrib, используя

pip install opencv-contrib-python

Но я получил ошибку:

Could not find a version that satisfies the requirement opencv-contrib-python (from versions: )  
No matching distribution found for opencv-contrib-python

Кто-нибудь сталкивался с такой же проблемой, или у вас есть какие-либопредложения или как это исправить?Любая помощь будет оценена.

1 Ответ

0 голосов
/ 11 октября 2018

РЕДАКТИРОВАТЬ: я нашел идеальное решение проблемы с установкой дополнительных модулей для OpenCV.Предыдущее решение требовало ручного копирования файлов из одного каталога github в другой, и скопированные файлы необходимо было добавить вручную в текстовый файл.Это решение позволяет вам устанавливать все модули без какого-либо копирования и т. Д. Я оставляю свои первоначальные мысли в ответе, как они были, единственное, что меняется, - это шаги, которым нужно следовать.Пожалуйста, исправьте меня, если я сделал что-то не так в отношении редактирования, поскольку мне никогда раньше не приходилось редактировать свой собственный ответ из-за поиска лучшего решения (как вы можете видеть, я здесь совсем новичок).

Мне удалось решить мою проблему, и я решил поделиться своим решением в качестве нового ответа, поэтому людям будет легче увидеть, если кто-нибудь столкнется с такой же проблемой в будущем.
Решение отлично работает, когда есть тольконужно установить несколько модулей из opencv_contrib, так как это требует некоторого копирования.

Для полного процесса установки необходимо следовать этому руководству https://www.pyimagesearch.com/2015/07/27/installing-opencv-3-0-for-both-python-2-7-and-python-3-on-your-raspberry-pi-2/

Новый процесс после поиска лучшего решения:

  1. Клонировать как OpenCV, так иOpenCV_contrib из GitHub
  2. Используйте команду cmake из приведенного выше руководства для создания файлов установки для OpenCV.Моя команда выглядела так:

    cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D BUILD_EXAMPLES=ON ..

  3. После выполнения этой команды и без ошибок снова запустите cmake -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..
  4. Это также должно работатьбез каких-либо ошибок, и дважды проверьте, все ли модули собираются установить, просто прокрутите результат вывода, и вы должны увидеть строку «Modules to install:», и там должен быть список всех модулей, включенных в opencv_contrib / modules.
  5. Как только это будет сделано, и вы подтвердите, что оно установит все, что вы хотите / нужно, вы можете продолжить обучение, выполнив make -j4.

Я знаю, что это просто дублирование строки, котораябыл включен в cmake раньше, и я понятия не имею, почему он работает после повторного использования этой команды.Если бы кто-то мог объяснить, почему это происходит, я был бы признателен, и это дало бы мне некоторое представление о том, почему это работает.Опять же, я надеюсь, что этот ответ поможет любому, кто проходит через ту же проблему.Кроме того, я извиняюсь за редактирование этого поста дважды, я подумал, что будет полезно показать людям более правильный способ решения этой проблемы.

...