opencv:視頻播放控制

/**
*通過添加一個全局變量來表示滾動條位置並且添加一個回調函數更新變量以及重新設置視頻讀入位置。
*/
#include "highgui.h"
#include "cv.h"

int g_slider_position = 0;
CvCapture* g_capture = NULL;

void onTrackbarSlide(int pos)
{
    //設置以幀數來設置讀入位置(FRAMES幀:AVI_RATIO視頻長度比例)    cvSetCaptureProperty(g_capture,CV_CAP_PROP_POS_FRAMES,pos);
}

int main(int argc,char** argv)
{
    cvNamedWindow("Example3",CV_WINDOW_AUTOSIZE);

    g_capture = cvCreateFileCapture("avi.avi");
    int frames = (int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_FRAME_COUNT);

    if (frames!=0)
    {
        cvCreateTrackbar("Position","Example3",&g_slider_position,frames,onTrackbarSlide);
    }
    IplImage* frame;
    while(1)
    {
         frame = cvQueryFrame(g_capture);
         if(!frame) break;
         cvShowImage("Example2",frame);
         char c = cvWaitKey(33);
         if (c == 27)
         {
             break;
         }
    }
    cvReleaseCapture(&g_capture);
    cvDestroyWindow("Example2");
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章