例三:利用滚动条控制视频
新加入的函数:
1.cvSetCaptureProperty(g_capture, CV_CAP_PROP_POS_FRAMES, pos);
如果滚动条移动,就设置视频到对应的位置
2.cvGetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_COUNT);
得到视频的帧数
3.cvCreateTrackbar("track1", "test", &g_slideposition, frames, onTrackbarSlide);
创建滚动条
4.cvSetTrackbarPos("track1", "test", cur_frame);
将滚动条设置到帧数对应的位置
首先,是要和例二一样,创建窗口,加载视频,截取一帧画面,显示图片。
然后,得到视频的总帧数,并创建滚动条。滚动条的回调函数将设置视频到滚动条对应的位置。
最后,如果要使滚动条根据视频的进度改变位置,应在每一次截取到图像之后,得到图像对应的帧数,然后设置滚动条到对应的位置。
但是这样会有一个问题,回调函数使每次滑动条位置改变时视频的进度也会改变,于是我们需要在回调函数中加以判断,如果视频的进度和我们得到的帧数相同时不再改变视频的进度。
PS:创建滚动条后,滚动条滑块的位置和