#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;
}
运行结果如下:
}