сохранение последовательности изображений из видео с использованием opencv2
Вопрос новичка и да, я потратил много времени, просматривая подобные вопросы и ответы без удачи.
Я пытаюсь сохранить кадры из видеофайла в последовательном порядке. Мне удалось сохранить одно изображение с помощью c, и я не могу сохранить изображения после этого. Я начал использовать c ++ в opencv вместо c, и все, что я могу сделать, это просматривать видео, а не сохранять jpg 'из этого.
Я использую opencv2.4.4a на Mac, если это помогает. ниже мой пример c
#include
#include
#include
#include
#include
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);
}
заранее спасибо
отредактируйте к вышеупомянутому.
Я добавил к приведенному выше коду, в результате чего изображение будет сохранено с test.jpg, а затем переписано со следующим кадром. Как мне сказать opencv не копировать последнее изображение и переименовать следующий кадр в test_2.jpg Например, test_1.jpg, test_2.jpg и так далее?
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);
}