Ich habe Probleme mit OpenCV 2.4.9, um eine Videodatei mit Python zu lesen (und zu zeigen). Ich weiß, dass es kein Problem ist, die Datei zu finden, weil ich cv2.imread()
lesen konnte, um ein Bild aus demselben Verzeichnis zu lesen. Es ist definitiv ein Problem mit cv2.VideoCapture()
. Hier ist der Code und Ausgabe Ich habe immer:OpenCV 2.4.9 VideoCapture() liest Videodatei nicht in Enthought Python 2.7 Umgebung
import cv2
import numpy as np
testvid = cv2.VideoCapture('testvid.avi')
while(1):
ret, frame = testvid.read()
print ret
cv2.imshow('frame',frame)
k = cv2.waitKey(30) & 0xff
if k == 27:
break
testvid.release()
cv2.destroyAllWindows()
Ausgang:
False
error: C:\pisi\tmp\opencv-2.4.9-5\work\opencv-2.4.9\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imshow
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file C:\pisi\tmp\opencv-2.4.9-5\work\opencv-2.4.9\modules\highgui\src\window.cpp, line 261
Ich weiß, dass es einige Leute gegeben, die das gleiche Problem gehabt haben. This thread und this tread adressieren beide das Problem, indem Sie sagen, dass Sie die opencv_ffmpeg.dll-Datei umbenennen müssen, um Ihre Version anzupassen und sie in das Python-Hauptverzeichnis oder -Verzeichnis in Ihrem Pfad (oder etwas in diesem Sinne) zu kopieren.
Allerdings verwende ich Python 2.7.13 durch Enthought (auf Empfehlung von meinem Professor), und die Pfade und Wege, Bibliotheken und Pakete eingerichtet sind scheinen völlig anders als in den anderen Threads. Enthought verwendet einen Paketmanager, der OpenCV automatisch für mich herunterlädt und einrichtet. Es gibt kein Python-Verzeichnis. Alles ist durch Enthought. Nach einigem Graben fand ich, wo alle der OpenCV .dlls befinden, einschließlich opencv_ffmpeg249_64.dll:
C:\Users\USERNAME\AppData\Local\Enthought\Canopy\edm\pkgs\03\9d58e152b8f411718220c30639b8448585cb7d9a82de662c7e34b35d9ec1f6
Also, was soll ich tun mit diesem? Wo kopiere ich die .dll? Ist das .dll selbst das Problem hier? Ich habe so viele Dinge ausprobiert, einschließlich Kopieren an alle möglichen Orte und Umbenennen der .dll, und nichts hat funktioniert. Hilfe!
Danke für den Rat. Ich habe Python 3 heruntergeladen und pip funktioniert, aber ich konnte cmake nicht richtig funktionieren lassen. Ich habe eine andere Methode ausprobiert, bei der ich opencv installiert habe, indem ich eine .whl-Datei für opencv herunterlädte. Aber jetzt, wenn ich das Programm ausführen, bekomme ich das: 'ImportError: DLL laden fehlgeschlagen:% 1 ist keine gültige Win32-Anwendung ' – Spaceguy44
Ich sollte auch klarstellen, dass ich Windows 10 verwende. – Spaceguy44
Versuchen Sie nicht, opencv zu installieren Pip installiert seine .whl-Datei: es wird nicht funktionieren. Könnten Sie bitte Details zu den Problemen mit cmake geben? – Employee