学习opencv之播放avi文件中滚动条实时移动

来源:互联网 发布:如何禁止mac地址上网 编辑:程序博客网 时间:2024/05/14 23:27

 在学习opencv第二章中例题2-2中有个课后问题,

即滚动条实时移动。

发现如下问题,如果每一帧都同步的话,会导致不流畅,所以设置成没跑了50帧才同步,具体原因待解决。

现代码如下

#include "stdafx.h"#include"opencv243.h"using namespace std;int g_Pos=0;int num=0;CvCapture* g_Capture=NULL;void CallBackTrackBarSlide(int pos){cvSetCaptureProperty(g_Capture,CV_CAP_PROP_POS_FRAMES,pos);g_Pos=pos;}int _tmain(int argc, _TCHAR* argv[]){cvNamedWindow("Demo",CV_WINDOW_AUTOSIZE);g_Capture=cvCreateFileCapture("C:\\Users\\sony\\Desktop\\opencv.avi"); int totalFrames= (int)cvGetCaptureProperty(g_Capture,CV_CAP_PROP_FRAME_COUNT);if(totalFrames!=0){cvCreateTrackbar("TrackBar","Demo", &g_Pos,totalFrames,CallBackTrackBarSlide); }IplImage* frame;while(1) {  frame=cvQueryFrame(g_Capture); if(!frame)break;   cvShowImage("Demo",frame); char c=cvWaitKey(30); if(c==27) break;  g_Pos++;  num++;if(num==50){cvSetTrackbarPos("TrackBar","Demo", g_Pos);num=0;}      } cvReleaseCapture(&g_Capture); cvDestroyWindow("Demo"); return 0;}

原创粉丝点击