Я кратко изложил свое полностью работающее решение OpenCV-Python - Как установить пакет OpenCV-Python в Anaconda (Windows) . Тем не менее я скопировал и вставил важные фрагменты в этот пост.
На момент написания статьи я использовал Windows 8.1, 64-битный компьютер, Anaconda / Python 2.x. (см. примечания ниже - это также работает для Windows 10 и, вероятно, для Python 3.x).
ПРИМЕЧАНИЕ 1: как упомянуто @great_raisin (спасибо) в разделе комментариев, однако, это решение, похоже, также работает для Windows 10.
ПРИМЕЧАНИЕ 2: вероятно, это будет работать и для Anaconda / Python 3.x. Если вы используете Windows 10 и Anaconda / Python 3.x, и это решение работает, пожалуйста, добавьте комментарий ниже. Спасибо! (Обновление: примечание из комментария «Работа в Windows 10»)
ПРИМЕЧАНИЕ 3: в зависимости от того, используете ли вы Python 2.x или 3.x, просто измените print
оператор соответствующим образом в фрагментах кода. то есть в Python 3.x это будет print("hello")
, а в Python 2.x это будет print "hello"
.
TL; DR
Чтобы полностью использовать OpenCV с Anaconda (и Spyder IDE), нам необходимо:
- Загрузите пакет OpenCV с официального сайта OpenCV
- Скопируйте и вставьте в
cv2.pyd
каталог сайтов-пакетов Anaconda.
- Установите пользовательские переменные среды, чтобы Anaconda знала, где найти утилиту FFMPEG.
- Сделайте некоторое тестирование, чтобы подтвердить, что OpenCV и FFMPEG теперь работают.
(Читайте подробные инструкции ...)
необходимое условие
Установить Анаконду
По сути, Anaconda - это красиво упакованная среда разработки Python, которая поставляется с множеством полезных пакетов, таких как NumPy, Pandas, IPython Notebook и т. Д. По-видимому, это рекомендуется везде в научном сообществе. Проверьте Анаконда чтобы установить это.
Установите OpenCV-Python для Anaconda
Осторожно: изначально я пытался установить пакет binstar.org OpenCV, как это было предложено. Однако этот метод не включает кодек FFMPEG - то есть вы можете использовать OpenCV, но не сможете обрабатывать видео.
Следующая инструкция работает для меня, вдохновлена этим видео OpenCV YouTube . Пока что он работает на моем настольном компьютере и ноутбуке, как на 64-битных компьютерах, так и на Windows 8.1.
Скачать пакет OpenCV
Во-первых, перейдите на официальный сайт OpenCV, чтобы загрузить полный пакет OpenCV. Выберите версию, которая вам нравится (2.x или 3.x). Я нахожусь на Python 2.x и OpenCV 3.x - главным образом потому, что именно так настроены / основаны учебники OpenCV-Python .
В моем случае я распаковал пакет (по сути, папку) прямо на диск C ( C:\opencv
).
Скопируйте и вставьте файл cv2.pyd
Каталог сайтов-пакетов Anaconda (например, C:\Users\Johnny\Anaconda\Lib\site-packages
в моем случае) содержит пакеты Python, которые вы можете импортировать. Наша цель - скопировать и вставить cv2.pyd
файл в этот каталог (чтобы мы могли использовать его import cv2
в наших кодах Python).
Для этого скопируйте cv2.pyd
файл ...
Из этого каталога OpenCV (начальная часть может немного отличаться на вашем компьютере). Для Python 3.x, я думаю, просто изменить , 2.x
чтобы 3.x
соответствующим образом .
# Python 2.7 and 32-bit machine:
C:\opencv\build\python\2.7\x84
# Python 2.7 and 64-bit machine:
C:\opencv\build\python\2.7\x64
В этот каталог Anaconda (начальная часть может немного отличаться на вашем компьютере):
C:\Users\Johnny\Anaconda\Lib\site-packages
После выполнения этого шага мы теперь сможем использовать import cv2
в коде Python. НО, нам все еще нужно проделать немного больше работы, чтобы заставить работать FFMPEG (видеокодек) (чтобы мы могли выполнять такие вещи, как обработка видео).
Установить переменные среды
Щелкните правой кнопкой мыши «Мой компьютер» (или «Этот компьютер» в Windows 8.1) → щелкните левой кнопкой мыши Свойства → щелкните левой кнопкой мыши вкладку «Дополнительно» → щелкните левой кнопкой мыши кнопку «Переменные среды ...».
Добавьте новую переменную пользователя для указания на OpenCV (либо x86 для 32-разрядной системы, либо x64 для 64-разрядной системы). Я в настоящее время на 64-битной машине.
| 32-bit or 64 bit machine? | Variable | Value |
|---------------------------|--------------|--------------------------------------|
| 32-bit | `OPENCV_DIR` | `C:\opencv\build\x86\vc12` |
| 64-bit | `OPENCV_DIR` | `C:\opencv\build\x64\vc12` |
Добавить %OPENCV_DIR%\bin
к пользовательской переменной PATH
.
Например, моя PATH
переменная пользователя выглядит следующим образом ...
Перед:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts
После:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts;%OPENCV_DIR%\bin
Это все, что мы сделали! FFMPEG готов к использованию!
Тест для подтверждения
Нам нужно проверить, можем ли мы теперь делать это в Anaconda (через Spyder IDE):
- Импорт пакета OpenCV
- Используйте утилиту FFMPEG (для чтения / записи / обработки видео)
Тест 1: Можем ли мы импортировать OpenCV?
Чтобы подтвердить, что Anaconda теперь может импортировать пакет OpenCV-Python (а именно cv2
), введите их в консоли IPython:
import cv2
print cv2.__version__
Если пакет cv2
импортирован нормально, без ошибок, и cv2
версия распечатана, то все в порядке! Вот снимок:
(источник: mathalope.co.uk )
Тест 2: Можем ли мы использовать кодек FFMPEG?
Поместите образец input_video.mp4
видеофайла в каталог. Мы хотим проверить, можем ли мы:
- прочитайте этот
.mp4
видеофайл и
- выписать новый видео файл (может быть
.avi
или .mp4
т. д.)
Для этого нам нужно иметь тестовый код Python, вызвать его test.py
. Поместите его в тот же каталог, что и input_video.mp4
файл примера .
Вот как это test.py
может выглядеть (я перечислил как новые, так и более старые коды версий - дайте нам знать, какой из них работает / не работает для вас!).
(Более новая версия ...)
import cv2
cap = cv2.VideoCapture("input_video.mp4")
print cap.isOpened() # True = read video successfully. False - fail to read video.
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter("output_video.avi", fourcc, 20.0, (640, 360))
print out.isOpened() # True = write out video successfully. False - fail to write out video.
cap.release()
out.release()
(Или более старая версия ...)
import cv2
cv2.VideoCapture("input_video.mp4")
print cv2.isOpened() # True = read video successfully. False - fail to read video.
fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter("output_video.avi",fourcc, 20.0, (640,360))
print out.isOpened() # True = write out video successfully. False - fail to write out video.
cap.release()
out.release()
Этот тест ОЧЕНЬ ВАЖЕН. Если вы хотите обрабатывать видеофайлы, вам нужно убедиться, что Anaconda / Spyder IDE может использовать FFMPEG (видеокодек). Мне потребовались дни, чтобы заставить это работать. Но я надеюсь, что это займет у вас гораздо меньше времени! :)
Примечание. Еще один очень важный совет при использовании Anaconda Spyder IDE. Обязательно проверьте текущий рабочий каталог (CWD) !!!
Вывод
Чтобы полностью использовать OpenCV с Anaconda (и Spyder IDE), нам необходимо:
- Загрузите пакет OpenCV с официального сайта OpenCV
- Скопируйте и вставьте в
cv2.pyd
каталог сайтов-пакетов Anaconda.
- Установите пользовательские переменные среды, чтобы Anaconda знала, где найти утилиту FFMPEG.
- Сделайте некоторое тестирование, чтобы подтвердить, что OpenCV и FFMPEG теперь работают.
Удачи!