videocapture isopened imwrite imdecode guardar example python windows opencv

python - isopened - videocapture opencv java



OpenCV 2.4 VideoCapture no funciona en Windows (9)

Actualización: Esto sigue siendo cierto para OpenCV 2.4.9, copie todos los archivos y cambie el nombre del dll opencv_ffmpeg249.dll

Estoy usando enlaces de Python para OpenCV 2.4 instalados con las siguientes instructions .

Mi problema es similar a este , pero necesito la solución de la máquina de Windows.

Problema: cuando trato de usar

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

funciona bien, pero el siguiente código

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

siempre devuelve False.

La ruta al archivo es correcta, absoluta y no tiene espacios.

Probé en dos máquinas con Windows XP y Windows 7 con resultados similares. En Linux (Ubuntu) funciona bien para mí.


Agregue C:/OpenCV/3rdparty/ffmpeg/ a la variable de entorno Windows PATH o copie opencv_ffmpeg.dll de ese directorio a C:/Python27/ o a un directorio que esté en la RUTA. Alternativamente, use los binarios de OpenCV de http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv .

Cambiar el nombre del archivo opencv_ffmpeg.dll también puede ser necesario.

Para la versión XYZ de OpenCV
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ.dll

Para la versión XYZ de OpenCV de 64 bits
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ_64.dll


Al principio uso windows8.1 32bit y opencv 2.4.10.
Me enfrenté al mismo problema al usar el archivo test1.wmv que fue creado por Logicool C270.
Traté de usar otro archivo test2.mov que fue hecho por la cámara digital (Canon SX160). Entonces puedo jugar test2.mov para anexar la ruta C:/opencv/build/x86/vc12/bin .
Pero no puedo jugar test1.wmv.
Así que trato de cambiar el formato test1.wmv a test1a.mp4 usando VLC (a Video for youtube HD ).
Entonces puedo jugar test1a.mp4.
Intenté test1.wmv en Ubuntu 14.04 LTS, luego puedo jugarlo fácil.
Puede ocurrir alguna diferencia en el binario ffmpeg predeterminado entre windows8.1 y Ubuntu 14.04 LTS.


Copiar opencv_ffmpeg.dll no fue suficiente para mí, tuve que cambiarle el nombre a opencv_ffmpeg246.dll , cuando utilicé OpenCV 2.4.6 con Python 2.7.5


Para OpenCV 3.0.0 en el entorno de 64 bits, copie opencv_ffmpeg_64.dll y cámbiele el nombre a opencv_ffmpeg300_64.dll.

También agregue esta ruta a la variable de entorno PATH para que funcione con OpenCV en Java.


Para el entorno anaconda, copie opencv_ffmpeg249_64.dll de C: / Python27 / cambie el nombre de su versión de acuerdo con su versión correcta de opencv y póngala en C: / Users / KHALID / Anaconda2 / Library / bin


Para versiones de 64 bits, cambie el nombre de opencv_ffmpeg_64.dll a opencv_ffmpeg249_64.dll Cambie 249 a su versión de opencv.


Primero intenté copiar, luego cambié el entorno de ruta de Windows ... no funcionó hasta que cambié el nombre a opencv_ffmpeg245.dll para mi versión 2.4.5 de openCV y python 2.7. (aviso ** 245.dll es de la versión 2.4.5 de opencv)


Tuve el mismo problema con python 2.7 y opencv 2.4.10. Copié el archivo opencv_ffmpeg2410_64.dll de C: / Applications / opencv / build / x64 / vc10 / bin en la ruta de python (el mío está en C: / Users / mohammad / Anaconda) y fue resuelto.