Как использовать OpenCV в Python?
Я только что установил OpenCV на мой компьютер с Windows 7. В результате я получаю новый каталог:
C:\OpenCV2.2\Python2.7\Lib\site-packages
В этом каталоге у меня есть два файла: cv.lib
и cv.pyd
.
Затем я пытаюсь использовать opencv
из Python. Я делаю следующее:
import sys
sys.path.append('C:\OpenCV2.2\Python2.7\Lib\site-packages')
import cv
В результате я получаю следующее сообщение об ошибке:
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.
Что я делаю неправильно?
ADDED
Как было рекомендовано здесь, я скопировал содержимое C:\OpenCV2.0\Python2.6\Lib\site-packages
в C:\Python26\Lib\site-packages
. Это не помогло.
ДОБАВЛЕНО 2
Мои переменные среды имеют следующие значения:
Path=C:\Program Files\MiKTex\miktex\bin;C:\OpenCV2.2\bin;C:\Python26;
PYTHONPATH=C:\OpenCV2.2\Python2.7\Lib\site-packages
Нужно ли что-то менять? Нужно ли что-то добавить?
ДОБАВЛЕНО 3
Я думаю, что мой вопрос общий: как использовать библиотеку? Возможно, мне нужно где-нибудь найти файл *.ddl? Тогда мне нужно использовать имя каталога, содержащего этот файл, в качестве значения для некоторых переменных среды? Или, может быть, мне нужно использовать sys.addpath
? Мне также нужно знать, как способ вызова библиотеки связан с именем файла, который содержит библиотеку.
ДОБАВЛЕНО 4
Интересно, что когда я набираю import cv
, я получаю:
ImportError: DLL load failed: The specified module could not be found.
Но когда я import opencv
я получаю:
ImportError: No module named opencv
ДОБАВЛЕНО 5
Было высказано предположение, что я противоречивая версия Python. Более подробно, OpenCV пытается использовать Python2.7, и у меня был Python2.6. Итак, я установил Python 2.7. Это имеет значение. Теперь у меня нет старого сообщения об ошибке, но у меня есть новое:
ImportError: numpy.core.multiarray failed to import
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: numpy.core.multiarray failed to import
ДОБАВЛЕНО 6
Мне удалось решить проблему, установив NumPy. Прошло какое-то время, потому что я не понял, что существуют разные программы установки, соответствующие различным версиям Python. Некоторые подробности можно найти в моем ответе на мой собственный вопрос (см. Ниже).
Ответы
Ответ 1
Проблема решена. Выполнены следующие шаги:
- Была установлена новая версия python (версия 2.7).
- После этого я все еще не смог запустить OpenCV, потому что у меня были некоторые проблемы с библиотекой numpy.
- Я устал устанавливать numpy, но установщик не видел мою новую версию Python.
- Я удалил старую версию Python, а также ссылки на старую версию в системе Path vatriable.
- После этого установщик numpy не смог завершить установку.
- Я понял, что мне нужно запустить еще один установщик numpy, который связан с Python 2.7. Здесь можно найти .
- Наконец-то все сработало. Я смог "импортировать cv".
Ответ 2
Я подозреваю, что у вас такая же проблема, с которой я столкнулся. Если у вас 64-разрядная версия Python, она не может загружать 32-разрядные библиотеки DLL. В настоящее время OpenCV отправляет только 32-битные двоичные файлы. Если вам нужны 64-битные файлы .pyd и .dll, вы должны сами их скомпилировать. Есть несколько инструкций в OpenCV Wiki, но это не для слабонервных. Ожидайте иметь значительные инвестиции времени.
Самое простое решение:
- Удалить 64-разрядный Python
- Установите 32-разрядный дистрибутив.
В дистрибутив PythonXY входит pyopencv - хороший набор крючков OpenCV. Единственным ограничением является то, что он 32-битный, поэтому не планируйте обрабатывать данные гигапиксельной астрономии!;)
Если у вас должна быть 64-разрядная версия, следуйте этим инструкциям, чтобы получить OpenCV для компиляции с Visual Studio 2010. Там обсуждается stackoverflow, который описывает создание 64-разрядных приложений с помощью VC Express.
EDIT: OpenCV теперь поставляется с 64-битными двоичными файлами Python. Файлы .dll должны идти куда-то на вашем пути (я помещаю их в папку сценариев), а файлы .pyd входят в каталог вашего сайта.
Ответ 3
У меня возникли проблемы с взаимодействием OpenCV с Python, и я искал повсюду о помощи. Вот что сработало для меня. Я в основном следил за этим сообщением: http://opencvpython.blogspot.com/2012/05/install-opencv-in-windows-for-python.html. После загрузки и извлечения OpenCV 2.4.6 вы в основном получаете папку с названием "opencv" с кучей вещей в ней. Перейдите к build- > python- > 2.7. Внутри есть только один файл с именем "cv2.pyd". Я скопировал этот файл и вставил его в "python-2.7.5\Lib\site-packages". Я на самом деле использую IDE Spyder, и он отлично работает. В интерпретаторе python для меня работала запись в "import cv".
Ответ 4
Возможно, вы должны отредактировать переменную окружения
щелкните правой кнопкой мыши на "Мой компьютер" или что-то в этом роде, щелкните по свойствам.
В окне свойств нажмите вкладку "Дополнительно".
Затем, кнопка переменных среды.
Измените путь.