OpenCV —— 视频播放控制

创建滚动条,实现滚动条随视频播放移动。

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

CvCapture* capture=NULL;
int g_slider_position=0;    // 创建时滑块的位置
int s_pos=0;

void onTrackbarSlide(int pos)
{
    // 滑块回掉函数
    cvSetCaptureProperty(capture,CV_CAP_PROP_POS_FRAMES,pos);
    s_pos=pos;
}

int main(int argc,char** argv)
{
    cvNamedWindow("w1",CV_WINDOW_AUTOSIZE);
    capture=cvCreateFileCapture("video.avi");

    int frames=(int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_COUNT);

    if(frames!=0)
    {
        cvCreateTrackbar("bar1","w1",&g_slider_position,frames,onTrackbarSlide);
    }

    IplImage* frame;
    while(1)
    {
        frame=cvQueryFrame(capture);
        cvShowImage("w1",frame);
        char c=cvWaitKey(20);
        if(c==27)
            break;

        cvSetTrackbarPos("bar1","w1",s_pos);    // 设置滑块的位置,实现滑块虽视频的播放滑动
        s_pos++;
    }
    cvReleaseCapture(&capture);
    cvDestroyWindow("w1");
    return 0;
}
posted @ 2014-06-23 14:52  老姨  阅读(377)  评论(0编辑  收藏  举报