[OpenCV] Bild wird nicht gespeichert
Verfasst: Montag 31. Mai 2010, 12:00
Hallo Community!
Ich habe ein kleines Problem mit OpenCV:
Ich versuche aus einem Videostream von meiner Webcam Bilder zu speichern, jedoch geht es nicht.
Mit der Funktion cvSaveImage(filename, file) müsste es aber eigentlich gehen.
Ich habe überall geschaut, aber nichts gefunden.
Im Folgenden findet ihr den Code:
Meine Fragen:
1) Wo muss ich die Speichern-Funktion einfügen? Ich habe zusätzlich eine Methode "def save" geschrieben, jedoch weiss ich nicht, wo ich sie platzieren soll.
2) Ich hatte es mal ursprünglich in der drittletzten Zeile vor "break" positioniert. Beim Druck auf ESC müsste ja zuerst das aktuelle Frame gespeichert und anschließend das Programm beendet werden.
Vor "break" zu positionieren geht anscheinend, aber das Programm reagiert nicht mehr und speichert nichts.
Ich wäre sehr, sehr froh, wenn ihr mir hierbei helfen würdet!!!
MFG,
OpenCV
Ich habe ein kleines Problem mit OpenCV:
Ich versuche aus einem Videostream von meiner Webcam Bilder zu speichern, jedoch geht es nicht.
Mit der Funktion cvSaveImage(filename, file) müsste es aber eigentlich gehen.
Ich habe überall geschaut, aber nichts gefunden.
Im Folgenden findet ihr den Code:
Code: Alles auswählen
# Fenster erzeugen
highgui.cvNamedWindow('Camera', highgui.CV_WINDOW_AUTOSIZE)
# Fenster an linke obere Ecke platzieren
highgui.cvMoveWindow('Camera', 0, 0)
# Kamera initialisieren
self.capture = highgui.cvCreateCameraCapture(-1)
# Framegroesse festlegen
highgui.cvSetCaptureProperty(self.capture, highgui.CV_CAP_PROP_FRAME_WIDTH, 320)
highgui.cvSetCaptureProperty(self.capture, highgui.CV_CAP_PROP_FRAME_HEIGHT, 240)
# Kontrolle, ob Kamera bereit ist
if not self.capture:
print "Fehler: Kann Kamera nicht auslesen!"
sys.exit (1)
# 1.Frame aufnehmen
self.frame = highgui.cvQueryFrame(self.capture)
# Vom 1.Frame Groesse rauslesen
self.frame_size = cv.cvGetSize(self.frame)
# Erstellt das Bild mit der entsprechenden Groesse
cv.cvCreateImage(self.frame_size, 8, 3)
# Endlosschleife
while 1:
# Aktuelles Bild abgreifen
self.frame = highgui.cvQueryFrame (self.capture)
if self.frame is None:
# Beenden, wenn kein Bild abgegriffen wird
break
# Event-Handler
k = highgui.cvWaitKey (10)
# Bild wird angezeigt
highgui.cvShowImage('Camera', self.frame)
# Bei Druck auf ESC wird Programm beendet und Speicher wieder freigegeben
if k == '\x1b':
break
cv.cvReleaseMemStorage(self.capture)
1) Wo muss ich die Speichern-Funktion einfügen? Ich habe zusätzlich eine Methode "def save" geschrieben, jedoch weiss ich nicht, wo ich sie platzieren soll.
2) Ich hatte es mal ursprünglich in der drittletzten Zeile vor "break" positioniert. Beim Druck auf ESC müsste ja zuerst das aktuelle Frame gespeichert und anschließend das Programm beendet werden.
Vor "break" zu positionieren geht anscheinend, aber das Programm reagiert nicht mehr und speichert nichts.
Ich wäre sehr, sehr froh, wenn ihr mir hierbei helfen würdet!!!
MFG,
OpenCV