创建滚动条,实现滚动条随视频播放移动。
#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; }