l'enregistrement d'une image de la séquence vidéo à l'aide de opencv2
Newbie question et oui, j'ai passé beaucoup de temps à ressasser les mêmes questions et Réponses avec pas de chance.
Ce que je suis en train de faire est d'enregistrer les images à partir d'un fichier vidéo dans un ordre séquentiel. J'ai réussi à enregistrer une image à l'aide de c et je n'arrive pas à enregistrer les images par la suite. J'ai commencé à l'aide de c++ dans opencv au lieu de c et tout ce que je peux faire est de voir la vidéo et pas d'enregistrer des jpg à partir d'elle.
Je suis en utilisant opencv2.4.4 un sur mac si cela aide.
ci-dessous mon c exemple
#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");
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);
}
Je vous remercie à l'avance
modifier à la ci-dessus.
J'ai ajouté le code ci-dessus qui donne une image pour être enregistrées avec l'test.jpg et puis se réécrit avec l'image suivante. Comment puis-je dire d'opencv pour ne copie pas sur la dernière image et renommer l'image suivante à test_2.jpg par exemple, test_1.jpg, test_2.jpg et ainsi de suite?
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);
}
Vous devez vous connecter pour publier un commentaire.
Utiliser un index qui permettra de garder une trace de la partie numéro dans le nom de fichier. Dans la capture d'images en boucle, ajouter l'index avec le nom de fichier et de construire le dernier nom de fichier.
voici un exemple :
C'est mon code... j'ai essayé beaucoup de choses et enfin
c'est le c++ à l'aide d'opencv 3... j'espère qu'elle travaille
C'est ma façon de faire en Python3.0. Avoir CV2 3+ version pour que cela fonctionne.
Cette fonction enregistre les images avec une fréquence donnée.