J'utilise les liaisons Python à OpenCV 2.4 installées avec les instructions suivantes .
Mon problème est similaire à this one , mais j'ai besoin d'une solution de machine Windows.
Problème: quand j'essaie d'utiliser
cap = cv2.VideoCapture(0)
print cap.grab()
cela fonctionne bien, mais le code suivant
cap = cv2.VideoCapture(filename)
print cap.grab()
retourne toujours False.
Le chemin d'accès au fichier est correct, absolu et ne contient aucun espace.
J'ai essayé sur deux machines avec Windows XP et Windows 7 avec des résultats similaires. Sous Linux (Ubuntu), cela fonctionne bien pour moi.
Ajoutez C:\OpenCV\3rdparty\ffmpeg\
à la variable d'environnement Windows PATH ou copiez opencv_ffmpeg.dll
de ce répertoire dans C:\Python27\
ou dans un répertoire qui se trouve dans PATH. Vous pouvez également utiliser les binaires OpenCV de http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv .
Renommer le fichier opencv_ffmpeg.dll
peut également être nécessaire.
Pour OpenCV version X.Y.Zopencv_ffmpeg.dll
==> opencv_ffmpegXYZ.dll
Pour la version OpenCV 64 bits X.Y.Zopencv_ffmpeg.dll
==> opencv_ffmpegXYZ_64.dll
Copier opencv_ffmpeg.dll ne me suffisait pas - je devais le renommer opencv_ffmpeg246.dll, lorsque j’utilisais OpenCV 2.4.6 avec Python 2.7.5
J'ai d'abord essayé de copier, puis de changer l'environnement Path de Windows .. cela ne fonctionnait pas avant d'avoir changé le nom d'opencv_ffmpeg245.dll pour mon openCV version 2.4.5 et python 2.7. (notice ** 245.dll provient de la version 2.4.5 d’opencv)
Pour les versions 64 bits, renommez opencv_ffmpeg_64.dll en opencv_ffmpeg249_64.dll Remplacez 249 par votre version opencv.
Pour OpenCV 3.0.0 dans un environnement 64 bits, copiez opencv_ffmpeg_64.dll et renommez-le en opencv_ffmpeg300_64.dll.
Ajoutez également ce chemin à votre variable d’environnement PATH pour qu’il fonctionne avec OpenCV sous Java.
Mise à jour: Ceci est toujours vrai pour OpenCV 2.4.9, copiez tous les fichiers et renommez la dll opencv_ffmpeg249.dll.
J'ai eu le même problème avec python 2.7 et opencv 2.4.10. J'ai copié le fichier opencv_ffmpeg2410_64.dll de C:\Applications\opencv\build\x64\vc10\bin dans le chemin python (le mien est situé à C:\Users\mohammad\Anaconda) et le problème a été résolu!
Au début, j'utilise windows8.1 32bit et opencv 2.4.10.
J'ai rencontré le même problème pour utiliser le fichier test1.wmv
créé par Logicool C270.
J'ai essayé d'utiliser un autre fichier test2.mov
créé par l'appareil photo numérique (Canon SX160) . Je peux donc jouer test2.mov
pour ajouter le chemin C:\opencv\build\x86\vc12\bin
.
Mais je ne peux pas jouer test1.wmv.
Alors, j'essaie de changer le format test1.wmv en test1a.mp4 en utilisant VLC (en Video for youtube HD
).
Alors je peux jouer test1a.mp4.
J'ai essayé test1.wmv
sur Ubuntu 14.04 LTS, alors je peux jouer facilement.
Il peut se produire une différence sur le fichier binaire ffmpeg par défaut entre Windows8.1 et Ubuntu 14.04 LTS.
Pour l'environnement anaconda Copiez opencv_ffmpeg249_64.dll à partir de C:\Python27\ Renommez sa version en fonction de votre version correcte Et collez-la en C:\Utilisateurs\KHALID\Anaconda2\Library\bin