<pre name="code" class="cpp"><pre name="code" class="cpp">#include <opencv2/highgui/highgui.hpp>
#include <opencv2\opencv.hpp>
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <vector>
using namespace cv;
using namespace std;
int main(int argc, char *argv[])
{
CvCapture* capture = cvCaptureFromAVI("C:\\Users\\hsn\\Desktop\\fish-120.avi");
int i = 0;
IplImage* img = 0;
char image_name[50];
cvNamedWindow( "vivi");
//读取和显示
while(1)
{
img = cvQueryFrame(capture); //获取一帧图片
if(img == NULL)
break;
cvShowImage( "vivi", img ); //将其显示
char key = cvWaitKey(20);
sprintf(image_name, "%s%d%s", "C:\\Users\\hsn\\Desktop\\tutu\\image", ++i, ".jpg");//保存的图片名
cvSaveImage( image_name, img); //保存一帧图片
}
cvReleaseCapture(&capture);
cvDestroyWindow("vivi");
return 0;
}
//int main(int argc, char **argv)
//{
//
// int period = atoi(argv[1]); //帧间隔,每隔多少帧取其中一张截图
// int count = atoi(argv[2]); //文件编号开始计数值
// char filename[128];
// CvCapture *capture = cvCreateFileCapture(argv[3]); //打开视频文件
// if (capture == NULL)
// {
// return - 1;
// }
// IplImage *frame;
// while (1)
// {
// for (int i = 0; i < period; i++)
// {
// frame = cvQueryFrame(capture);
// if (!frame)
// {
// // printf("finish!\n");
// // system("pause");
// return 0;
// }
// }
// sprintf(filename, "img_%d.jpg", count++);
// cvSaveImage(filename, frame);
// }
// cvReleaseCapture(&capture);
// return 0;
//}