[OpenCV] Bild wird nicht gespeichert

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
OpenCV
User
Beiträge: 20
Registriert: Mittwoch 17. Februar 2010, 15:29

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:

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)
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
Antworten