Wie zu Lesen, video-Dateien mit python & Opencv
Lese ich eine avi-Datei usinh python 2.7 und opencv2.4.Ich bin mit windows 10.Mein Beispielcode ist
import numpy as np
import cv2
cap = cv2.VideoCapture('videos/wa.avi')
while(cap.isOpened()):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Wenn ich video gezeigt wird Aber das Programm beendet und kein Fehler
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file ..\..\..\..\opencv\modules\highgui\src\window.cpp, line 261
Traceback (most recent call last):
File "C:/Users/Emmanu/PycharmProjects/VideoEventDetection/test.py", line 11, in <module>
cv2.imshow('frame',frame)
cv2.error: ..\..\..\..\opencv\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imshow
Was mache ich falsch?Wie kann ich es korrigieren?
InformationsquelleAutor user6745741 | 2017-01-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist in dieser Zeile:
Dieser Linie erwartet, dass der frame zu einem 3-Kanal oder 4-Kanal-Matte-Objekt, aber stattdessen wurde es einige leere Matte, und das ist, warum Sie immer diese assertion ist fehlgeschlagen.
Sie müssen überprüfen, ob der Rahmen besteht in video und behandeln müssen Ende des Videos richtig.
cap.isOpened()
wird nur überprüfen, ob die video-Datei kann zum Lesen geöffnet werden aber es wird nicht wieder ein false, wenn das Ende der Videodatei erreicht ist.Versuchen diese
welche Datei? bitte zeigen Sie einige code
Danke für die Antwort, aber ich erinnere mich nicht, die Frage jetzt, aber ich glaube, es war gelöst, nachdem ich installiert opencv-ffmpeg wieder
InformationsquelleAutor abggcv
Wenn Sie
cap.isOpened()
es überprüfen, dass das video ist richtig gelesen, So daswhile
Schleife, ist dort nicht arbeitet.Aber wenn Sie geändert
while True
es wird ausgeführt, ohne die richtige Lesung, die ist, warum gibt es einen Fehler.InformationsquelleAutor Rahul K P
Sie nahm das tutorial von hier: Spielen Video-Datei aus
Diese Frage richtet Ihr Fehler: open cv error: (-215) scn == 3 || scn == 4 in Funktion cvtColor
Zwei Dinge, die funktionieren könnten:
cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
Versuchen
cv2.COLOR_BGR2RGB
stattcv2.COLOR_BGR2GRAY
InformationsquelleAutor ppasler
Gut, ich vermute, dass die Aufnahme nicht öffnen. Das ist, warum Ihr Programm endet sofort wenn Sie
while(cap.isOpened()):
.Wie gesagt in diesem doc es passiert, dass die Aufnahme nicht implizit geöffnet, wenn erstellt.
Versuchen, explizit öffnen Sie die capture etwa so :
Wenn das nicht funktioniert, Sie müssen überprüfen, ob die video-Datei-Pfad.
InformationsquelleAutor Pierre C.