Aufzeichnen von Videos mit Himbeere mit opencv+picamera stream-IO
Ich bin mit der Himbeere zu zeigen einfach, dass ein video (nur dies für jetzt). Um dies zu tun, ich habe mit opencv (cv2). Ich habe versucht, viele Lösung, aber jetzt will ich das video aufnehmen mit dem Picamera library.
Ich werde Ihnen zeigen, mein code:
import io
import time
import picamera
import cv2
import numpy as np
# Create the in-memory stream
stream = io.BytesIO()
with picamera.PiCamera() as camera:
while True:
camera.capture(stream, format='jpeg')
# Construct a numpy array from the stream
data = np.fromstring(stream.getvalue(), dtype=np.uint8)
# "Decode" the image from the array, preserving colour
image = cv2.imdecode(data, 1)
cv2.imshow('frame', image)
Es ist wirklich einfach, wie Sie sehen können, aber es funktioniert nicht. Eigentlich ist es nicht evev das Fenster öffnen.
Ich möchte zum reproduzieren des Verhaltens des anderen, das funktioniert perfekt:
#import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
Irgendeine Idee ?
Es scheint, dass die cv2.imshow('Bild', Bild) nicht richtig funktioniert.
Sie vergaß die cv2.waitKey() Zeile. es geht nicht ohne.
Wirklich? ... Warum? ... Ist das nicht cv2.waitKey() nur darum, die Befehle von der Tastatur ?
definitiv nicht. es enthält das Fenster messageloop und die tatsächliche blitting
Nun öffnet sich das Fenster, aber es ist tatsächlich leer. Habe ich etwas vergessen ?
Sie vergaß die cv2.waitKey() Zeile. es geht nicht ohne.
Wirklich? ... Warum? ... Ist das nicht cv2.waitKey() nur darum, die Befehle von der Tastatur ?
definitiv nicht. es enthält das Fenster messageloop und die tatsächliche blitting
Nun öffnet sich das Fenster, aber es ist tatsächlich leer. Habe ich etwas vergessen ?
InformationsquelleAutor giogix | 2014-10-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Check-out dieses blog-posting. Es hat den code, um diese arbeiten:
Ein bisschen weiter unten gibt es ein Beispiel mit der Aufnahme von Bildern kontinuierlich.
InformationsquelleAutor Claude
versuchen:
um sicherzustellen, dass Sie haben das video für linux-Treiber
InformationsquelleAutor Imran Ibrahimi
Ich hatte ein ähnliches problem, wo die Kamera-Ausgabe arbeitete, aber der video-stream wurde immer schwarz. Es stellt sich heraus, dass es ist ein picamera version Problem. Die Installation von 1.10 für mich gearbeitet, ohne andere Abweichungen von der demo-code:
InformationsquelleAutor kusold
Erste, cv2.waitKey() Hinzugefügt werden muss, um die folgende Zeile von cv2.imshow('Bild', Bild). Dann stream.seek(0); stream.truncate(); Hinzugefügt werden müssen, um das Ende der Schleife, sonst wird das Bild nicht ändern.
InformationsquelleAutor lss8513