speichern einer Bildsequenz aus video mit opencv2

Newbie-Frage und ja ich habe viel Zeit damit verbracht, zu durchforsten ähnliche Fragen und Antworten mit kein Glück.

Was ich versuche zu tun ist, speichern von frames aus einer Videodatei in einer sequenziellen Reihenfolge. Ich habe es geschafft, speichern Sie ein Bild mit c und ich kann nicht scheinen, um Bilder speichern danach. Ich habe angefangen mit c++ in opencv statt c und alles, was ich tun kann, ist, das video ansehen und nicht speichern keine jpg ' s von ihm.

Ich bin mit opencv2.4.4 a auf dem mac, wenn das hilft.
unten ist mein c Beispiel

#include <stdio.h>
#include <stdlib.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <iostream>

using namespace cv;
using namespace std;

int main (int argc, char** argv)
{
//initializing capture from file
CvCapture * capture = cvCaptureFromAVI ("/example/example.mov");

//Capturing a frame
IplImage* img = 0;
if(!cvGrabFrame(capture))      //capture a frame
{
printf)Could not grab a fram\n\7");
exit(0);
}
img=cvRerieveFrame(capture);    //retrieve the captured frame

//writing an image to a file
if (!cvSaveImage("/frames/test.jpg", img))
printf("Could not save: %s\n","test.jpg");

//free resources
cvReleaseCapture(&capture);

}

Danke im Voraus

Bearbeiten, um die oben genannten.

Habe ich zusätzlich zu den oben genannten code, die Ergebnisse in einem Bild gespeichert werden, mit der test.jpg und dann wird umgeschrieben, mit dem nächsten frame. Wie kann ich feststellen, opencv, um nicht kopieren über das Letzte Bild, und benennen Sie das nächste Bild an test_2.jpg zB test_1.jpg, test_2.jpg und so weiter?

double num_frames = cvGetCaptureProperty (capture, CV_CAP_PROP_FRAME_COUNT);

for (int i = 0; i < (int)num_frames; i++)
{
img = cvQueryFrame(capture);
cvSaveImage("frames/test.jpg", img);
}

cvReleaseCapture(&capture);
}
Schreibe einen Kommentar