double cvGetCaptureProperty( CvCapture* capture, int property_id );
CV_EXTERN_C_FUNCPTR( void (*CvTrackbarCallback)(int pos) );
int cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change );
参数:
代码如下:
#include
#include
CvCapture* capture = NULL;
int pos=0; //视频位置
void ON_Change(int n)
{
cvSetCaptureProperty(capture,CV_CAP_PROP_POS_FRAMES,n); //设置视频走到pos位置
}
int _tmain(int argc, _TCHAR* argv[])
{
cvNamedWindow("show"); //新建一个窗口
capture =cvCreateFileCapture("F:\\TDDOWNLOAD\\10.Little.Asians.16\\fle-10la16a.avi");//创建一个视频
int frames = (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_COUNT); //返回视频帧的总数
cvCreateTrackbar("frame","show",&pos,frames,ON_Change);//创建滚动条
IplImage * frame;//声明视频帧
while(1)
{
frame = cvQueryFrame(capture); //获取下一帧图像
if (!frame)
{
break; //如果不存在退出
}
pos++; //播放一帧位置加1
//cvSetTrackbarPos("frame","show",pos);//设置进度条位置 加入此语句后视频会变卡
cvShowImage("show",frame); //在窗口显示图像
char c = cvWaitKey(33); //间隔33ms
if (c == 27) //如果按下Esc键中断
break;
}
cvReleaseCapture(&capture); //释放视频空间
cvDestroyWindow("show"); //销毁窗口
}