OpenCV 2.4 VideoCapture не работает в Windows

Я использую привязки Python к OpenCV 2.4, установленным со следующими инструкциями .

Моя проблема аналогична этой , но мне нужно решение для Windows.

Проблема: когда я пытаюсь использовать

cap = cv2.VideoCapture(0) print cap.grab() 

он работает нормально, но следующий код

 cap = cv2.VideoCapture(filename) print cap.grab() 

всегда возвращайте False.

Путь к файлу правильный, абсолютный и не имеет пробелов.

Я пробовал на двух машинах с Windows XP и Windows 7 с аналогичными результатами. В Linux (Ubuntu) он отлично работает для меня.

9 Solutions collect form web for “OpenCV 2.4 VideoCapture не работает в Windows”

Добавьте C:\OpenCV\3rdparty\ffmpeg\ в переменную окружения Windows PATH или скопируйте opencv_ffmpeg.dll из этого каталога в C:\Python27\ или в каталог, который находится в PATH. Кроме того, используйте двоичные файлы OpenCV с http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv .

Также может потребоваться переименование файла opencv_ffmpeg.dll .

Для версии OpenCV XYZ
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ.dll

Для 64-битной версии OpenCV XYZ
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ_64.dll

Копировать opencv_ffmpeg.dll было недостаточно для меня – мне пришлось переименовать его в opencv_ffmpeg246.dll , когда я использовал OpenCV 2.4.6 с Python 2.7.5

Сначала я попытался скопировать, а затем изменил среду окружения Windows. Это не сработало, пока я не изменил имя на opencv_ffmpeg245.dll для моего openCV версии 2.4.5 и python 2.7. (извещение ** 245.dll из opencv версии 2.4.5)

Для 64-разрядных версий переименуйте opencv_ffmpeg_64.dll в opencv_ffmpeg249_64.dll. Измените 249 на версию opencv.

Для OpenCV 3.0.0 на 64-битной среде скопируйте файл opencv_ffmpeg_64.dll и переименуйте его в opencv_ffmpeg300_64.dll.

Также добавьте этот путь к переменной среды PATH, чтобы заставить ее работать с OpenCV под Java.

Обновление: это все еще верно для OpenCV 2.4.9, скопируйте все файлы и переименуйте dll opencv_ffmpeg249.dll

У меня была такая же проблема с python 2.7 и opencv 2.4.10. Я скопировал файл opencv_ffmpeg2410_64.dll из C: \ Applications \ opencv \ build \ x64 \ vc10 \ bin в путь python (мой находится в C: \ Users \ mohammad \ Anaconda), и он был решен!

Сначала я использую windows8.1 32bit и opencv 2.4.10.
Я столкнулся с такой же проблемой, чтобы использовать файл test1.wmv который был создан Logicool C270.
Я попытался использовать другой файл test2.mov который был сделан цифровой камерой (Canon SX160). Поэтому я могу играть в test2.mov чтобы добавить путь C:\opencv\build\x86\vc12\bin .
Но я не могу играть test1.wmv.
Поэтому я пытаюсь изменить формат test1.wmv на test1a.mp4 с помощью VLC (для Video for youtube HD ).
Тогда я могу играть в test1a.mp4.
Я пробовал test1.wmv на Ubuntu 14.04 LTS, тогда я могу легко играть.
Может возникнуть некоторая разница в двоичном файле ffmpeg по умолчанию между windows8.1 и Ubuntu 14.04 LTS.

Для среды anaconda скопируйте opencv_ffmpeg249_64.dll из C: \ Python27 \ переименуйте свою версию в соответствии с вашей версией opencv и пройдите мимо ее в C: \ Users \ KHALID \ Anaconda2 \ Library \ bin

  • Шаги по установке PySide на окнах
  • Как добиться желаемых результатов при использовании подпроцессов Popen.send_signal (CTRL_C_EVENT) в Windows?
  • Как использовать «easy_install» Python в Windows ... это не так просто
  • ImportError: невозможно импортировать имя NUMPY_MKL
  • Невозможно открыть virtualenv на WIndows
  • Чтение символов Юникода из аргументов командной строки в Python 2.x в Windows
  • Python - получить права доступа к ACL для окон
  • Ошибка сокета «IP-адрес недействителен в его контексте» - Python
  • Python - лучший язык программирования в мире.