opencv实现播放视频的时候可以添加进度条cvCreateTrackbar,控制播放的进度,当然也可以用进度条来实现视频的暂停和开始。其函数原型为int cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change )。第一个参数是命名的进度条名称,第二个参数是视频窗口名称,第三个参数是进度条滑块开始的位置,反映滑块的位置。第四个参数是视频总帧数。第五个参数是回调函数。
下面是《学习opencv》书中添加滑块,以及实现其暂停和播放的代码。
int g_slipde_position=0;//进度条开始的位置 表示进度条从0开始
int g_switch_position=0;
int i=0;
int t=0;
CvCapture *capture;//CvCapture 数据类型 capture全局变量
void ontrackslide(int pos)//回调函数,传递位置参数
{
cvSetCaptureProperty(capture,CV_CAP_PROP_POS_FRAMES,pos);//设置跳转关键帧进行播放
i=pos;
}
void ontrackslide2(int pos)//回调函数,传递参数 参数为0 和 1
{
if(pos==0)
{
t=0;
}
else
{
t=1;
}
}
int main()
{
capture=cvCreateFileCapture("C:\\Users\\hongbing\\Desktop\\1234.avi");
cvNamedWindow("shipin",CV_WINDOW_AUTOSIZE);
i