/**
*通过添加一个全局变量来表示滚动条位置并且添加一个回调函数更新变量以及重新设置视频读入位置。
*/
#include "highgui.h"
#include "cv.h"
int g_slider_position = 0;
CvCapture* g_capture = NULL;
void onTrackbarSlide(int pos)
{
//设置以帧数来设置读入位置(FRAMES帧:AVI_RATIO视频长度比例)
cvSetCaptureProperty(g_capture,CV_CAP_PROP_POS_FRAMES,pos);
}
int main(int argc,char** argv)
{
cvNamedWindow("Example3",CV_WINDOW_AUTOSIZE);
g_capture = cvCreateFileCapture("avi.avi");
int frames = (int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_FRAME_COUNT);
if (frames!=0)
{
cvCreateTrackbar("Position","Example3",&g_slider_position,frames,onTrackbarSlide);
}
IplImage* frame;
while(1)
{
frame = cvQueryFrame(g_capture);
if(!frame) break;
cvShowImage("Example2",frame);
char c = cvWaitKey(33);
if (c == 27)
{
break;
}
}
cvReleaseCapture(&g_capture);
cvDestroyWindow("Example2");
}
视频播放控制
最新推荐文章于 2017-08-04 17:16:32 发布