it-swarm.com.de

OpenCV 2.4 VideoCapture funktioniert nicht unter Windows

Ich verwende Python-Bindungen für OpenCV 2.4, die mit folgenden Anweisungen installiert wurden: Anweisungen .

Mein Problem ist ähnlich wie dieses , aber ich brauche eine Windows-Computerlösung.

Problem: wenn ich versuche zu benutzen 

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

es funktioniert gut, aber der folgende Code

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

gib immer False zurück. 

Der Pfad zur Datei ist korrekt, absolut und enthält keine Leerzeichen.

Ich habe es auf zwei Computern mit Windows XP und Windows 7 mit ähnlichen Ergebnissen versucht. Unter Linux (Ubuntu) funktioniert es gut für mich.

45
Bihaqo

Fügen Sie C:\OpenCV\3rdparty\ffmpeg\ zur Windows PATH-Umgebungsvariablen hinzu, oder kopieren Sie opencv_ffmpeg.dll aus diesem Verzeichnis in C:\Python27\ oder in ein Verzeichnis, das sich im PATH befindet. Verwenden Sie alternativ die OpenCV-Binärdateien aus http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv .

Das Umbenennen der opencv_ffmpeg.dll-Datei kann ebenfalls erforderlich sein.

Für OpenCV Version X.Y.Z
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ.dll

Für die 64-Bit-OpenCV-Version X.Y.Z
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ_64.dll

70
cgohlke

opencv_ffmpeg.dll zu kopieren war nicht genug für mich - ich musste es in opencv_ffmpeg246.dll umbenennen, als ich OpenCV 2.4.6 mit Python 2.7.5 verwendete

28
Eran Marom

Ich habe zuerst versucht, zu kopieren und dann die Path-Umgebung von Windows zu ändern. Es funktionierte nicht, bis ich den Namen in opencv_ffmpeg245.dll für meine openCV-Version 2.4.5 und Python 2.7 geändert habe. (Der Hinweis ** 245.dll stammt von opencv Version 2.4.5.)

10
SanD

Benennen Sie für 64-Bit-Versionen die Datei opencv_ffmpeg_64.dll in opencv_ffmpeg249_64.dll um.

8
user3738775

Für OpenCV 3.0.0 in einer 64-Bit-Umgebung kopieren Sie opencv_ffmpeg_64.dll und benennen Sie sie in opencv_ffmpeg300_64.dll um.

Fügen Sie diesen Pfad auch zu Ihrer PATH-Umgebungsvariablen hinzu, damit er mit OpenCV unter Java funktioniert.

6
masewo

Update: Dies gilt weiterhin für OpenCV 2.4.9. Kopieren Sie alle Dateien und benennen Sie die DLL opencv_ffmpeg249.dll um

5
bw4sz

Ich hatte das gleiche Problem mit Python 2.7 und opencv 2.4.10. Ich habe die Datei opencv_ffmpeg2410_64.dll von C:\Applications\opencv\build\x64\vc10\bin in den Python-Pfad kopiert (meine ist unter C:\Users\mohammad\Anaconda) und es wurde gelöst!

4
user1947921

Zuerst verwende ich windows8.1 32bit und opencv 2.4.10.
Ich hatte das gleiche Problem, die Datei test1.wmv zu verwenden, die von Logicool C270 erstellt wurde.
Ich habe versucht, eine andere Datei test2.mov zu verwenden, die von der Digitalkamera (Canon SX160) erstellt wurde . So kann ich test2.mov abspielen, um den Pfad C:\opencv\build\x86\vc12\bin anzuhängen.
Ich kann jedoch nicht test1.wmv. spielen.
Ich versuche also, das Format test1.wmv mithilfe von VLC (in Video for youtube HD) in test1a.mp4 zu ändern.
Dann kann ich test1a.mp4. spielen
Ich habe test1.wmv auf Ubuntu 14.04 LTS ausprobiert, dann kann ich es einfach spielen.
Es kann ein Unterschied in der Standardeinstellung von ffmpeg zwischen windows8.1 und Ubuntu 14.04 LTS auftreten.

3
user

Für eine Anaconda-Umgebung Copy opencv_ffmpeg249_64.dll von C:\Python27\ Benennen Sie die Version entsprechend Ihrer opencv-korrekten Version Um und geben Sie sie an C:\Users\KHALID\Anaconda2\Library\bin

0
Khalid Bin Huda