读取视频同时创建进度条


#include<opencv2/opencv.hpp>

#include<cv.h>
#include"highgui.h"
using namespace cv;
int slider_position = 0;
CvCapture * avi = NULL;
void onTrackBarSlider(int pos) {
cvSetCaptureProperty(avi, CV_CAP_PROP_POS_FRAMES, pos);     //将被下一步解压/获取桢索引,以0为起点
}
int main() {
CvCapture *avi = cvCreateFileCapture("D:\\视频\\1.avi");    
IplImage * img;
cvNamedWindow("show_avi", 1);
int frame = (int)cvGetCaptureProperty(avi, CV_CAP_PROP_FRAME_COUNT);   //视频总的帧数
if (frame != 0) {
while (1) {
img = cvQueryFrame(avi);    
//slider_position = (int)cvGetCaptureProperty(avi, CV_CAP_PROP_POS_MSEC);   //影片目前的位置,毫秒数或视频获得的时间戳
cvCreateTrackbar("sliderbar", "show_avi", &slider_position, frame, onTrackBarSlider);   //创建进度条
if (!img)
break;
slider_position++;    //每播放一帧就加一
cvShowImage("show_avi", img);
char c = cvWaitKey(24);
if (c == 27)
break;
}
}
cvReleaseImage(&img);
cvDestroyWindow("show_avi");

return 0;

}

运行结果如下:

}

你可能感兴趣的:(读取视频同时创建进度条)