chap 4. 4 控制视频播放,单击游标视频帧跳跃到相应帧。
#include<opencv2/opencv.hpp>
#include<iostream>
// chap 4.4 参照教材pp:24
int position=0;
CvCapture* capture=NULL;
void onTrackbarSlide(int pos)
{
cvSetCaptureProperty(capture,CV_CAP_PROP_POS_FRAMES,pos);
}
void main()
{
cvNamedWindow("video");
capture=cvCreateFileCapture("D:\\video\\case.mp4");
int frames=(int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_COUNT);
if(frames)
{
cvCreateTrackbar("POS","video",&position,frames,onTrackbarSlide);
}
IplImage* frame=NULL;
while(capture)
{
frame=cvQueryFrame(capture);
position++;
cvSetTrackbarPos("POS","video",position);// 实现游标的移动和视频帧的对应
cvShowImage("video",frame);
if(cvWaitKey(33)>0)
break;
}
cvReleaseCapture(&capture);
}
若想 像题目要求那样 以10 进行跳帧,
只需 postion++; 修改为: position += 10;
由于没什么新内容,不做讲解。
可参考教材pp: 24页相关内容。