第一种方法:
int main(int argc, char** argv)
{
cvNamedWindow("视频播放器", CV_WINDOW_AUTOSIZE);
//参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在指定要使用的摄像头。
//一般的笔记本电脑都有内置摄像头。所以参数就是 0。你可以通过设置成 1 或者其他的来选择别的摄像头。
// 用cvCaptureFromAVI()跟cvCaptureFromFile()、cvCreateFileCapture()都是一样的作用
CvCapture* capture = cvCreateFileCapture(".\\video1.mp4"); //获取视频
IplImage* frame;
int i = 0;
char image_name[25];
int pos = 0;
int pos1 = 0;
while (1)
{
cvSetCaptureProperty(capture, CV_CAP_PROP_POS_FRAMES, pos);
cout << pos; frame = cvQueryFrame(capture); //获取一帧图片,将其显示
pos1 = cvGetCaptureProperty(capture, CV_CAP_PROP_POS_FRAMES);
cout << "\t" << pos1 << endl;
if (!frame) break;
cvShowImage("视频播放器", frame); //显示每一帧
sprintf(image_name, "%s%.4d%s", ".\\tutu15\\", ++i, ".jpg");//保存的图片名
cvSaveImage(image_name, frame); //保存一帧图片
char c = cvWaitKey(33);
if (c == 27) break;
pos += 12; // 快进,每隔12帧显示一帧图片
}
c