2017-12-15 7 views
-1

Ich überprüfte andere Lösungen, aber sie beantworteten meine Frage nicht. Mein Problem ist, dass wenn ich versuche, nur ein Bild von einem Video zu erfassen (ich möchte grundsätzlich ein Bild mit meiner Webcam machen), ich bekomme nur ein schwarzes Fenster.Aufnahme eines einzigen Frames mit Python (mit einer Webcam)

-Code -

import cv2 


cam = cv2.VideoCapture(0) 
frame = cam.read()[1] 
cv2.imwrite('img2.png', frame) 
cv2.imshow("img1", frame) 

Screenshot - https://imgur.com/kfeXYvQ

Meine Webcam ist USB, 720p bei 30 Bildern pro Sekunde.

Danke.

Antwort

1

Eines von zwei Dingen. Möglicherweise müssen Sie nach cv2.imshow() eine waitKey() hinzufügen. Alternativ überprüfen Sie die Rückgabe von der Kamera nicht auf Fehler. Es könnte ein Verbindungsproblem sein. Hier sind die zwei Dinge zu tun.

import cv2 

cam = cv2.VideoCapture(0) 
retval, frame = cam.read() 
if retval != True: 
    raise ValueError("Can't read frame") 

cv2.imwrite('img2.png', frame) 
cv2.imshow("img1", frame) 
cv2.waitKey() 

Die waitKey() Funktion hält das Programm, bis ein Benutzer einen Schlüssel in das Fenster eingetreten ist.

+0

es hat immer noch nicht funktioniert ... ich habe sogar einen Schlüssel gedrückt und danach habe ich den Computer neu gestartet, aber ich bekomme immer noch das gleiche schwarze Fenster wie auf dem Screenshot Link gezeigt .. –

+0

@SajjadAbbas was von 'retval' zurückgegeben wird ? Was kommt in "img2.png" auf? – SCB

+0

Ich bin mir nicht sicher, wie ich die retval Rückkehr sehen soll. Img2 ist jedoch buchstäblich nur schwarz, wie der Screenshot. –

Verwandte Themen