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);
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen index verwenden, die wird verfolgen die Anzahl der Teil in dem Dateinamen. In der Bild-Aufnahme-Schleife, fügen Sie den index mit dem Dateinamen und erstellen des endgültigen Namen.
hier ist ein Beispiel :
Dies ist mein code... ich habe versucht eine Menge und schließlich machte es
das ist c++ mit opencv 3... hoffe, es funktioniert
Dies ist meine Art und Weise zu tun, in Python ist3.0. Haben CV2 3+ - version, für Sie zu arbeiten.
Diese Funktion speichert Bilder mit der Frequenz gegeben.