首页 > 技术文章 > Opencv——播放视频(带滚动条)

BasilLee 2014-07-03 16:41 原文

#include"highgui.h"
#include"cv.h"

int g_slider_position = 0;
CvCapture* g_capture = NULL;
void onTrackbarSlide(int pos){
    cvSetCaptureProperty(g_capture, 
        CV_CAP_PROP_POS_FRAMES, pos);//CV_CAP_PROP_POS_FRAMES - 将被下一步解压/获取的帧索引,以0为起点
}
int main()
{
    g_capture = cvCreateFileCapture("D:\\Opencv\\testData\\video.avi");
    cvNamedWindow("Video", CV_WINDOW_AUTOSIZE);
    IplImage* frame;
    int frames = (int)cvGetCaptureProperty(g_capture, 
        CV_CAP_PROP_FRAME_COUNT);//CV_CAP_PROP_FRAME_COUNT - 视频文件中帧的总数
    if (frames != 0){
        cvCreateTrackbar("Position", "Video", &g_slider_position, frames, onTrackbarSlide);

    }
    while (1){
        frame = cvQueryFrame(g_capture);
        if (!frame) break;
        cvShowImage("Video", frame);
        cvWaitKey(33);
    }
    cvReleaseCapture(&g_capture);
    cvDestroyWindow("Video");
    return 0;
}

推荐阅读