zoukankan      html  css  js  c++  java
  • OpenCV视频进度播放控制

           本来打算把进度条嵌入MFC的PIC空间里面,结果显示进度条消失,看来还是不要这个样子了。

    全局变量区域:

    //2.初始化进度条的位置
    int   G_slider_position   =     0;
    CvCapture*    G_capture   =  NULL;
    //cv::VideoCapture    G_capture   =  NULL;
    bool    G_StatePlay = false;

    全局回调函数:

    //2.进度条的回调函数,播放进度控制
    void onTrackbarSlide(int  Pos)
    { 
    	cvSetCaptureProperty(G_capture, CV_CAP_PROP_POS_FRAMES, Pos);//设置视频
    	cvSetTrackbarPos("Trackbar Name","VideoBar" , Pos);
    
    	IplImage* frameS=cvQueryFrame(G_capture);
    	cv::Mat frameDst(240,320,CV_8UC3);
    
    	//resizeImage( frameS, frameDst);
    	cv::Mat  MatSrc( (frameS) ) ;
    	cv::resize(MatSrc,frameDst,frameDst.size() );
    
    	cv::imshow("VideoBar",frameDst);
    	
    	cv::waitKey(0);
    	cvReleaseImage(&frameS); 
    }

    控制播放的代码:

    bool CPicToolsDlg::initTrackBar()
    {
    	//捕获视频
    	//G_capture=cvCreateFileCapture("video.long.raw.avi");
    	//获取视频的帧数
    	int frames = (int) cvGetCaptureProperty(G_capture,CV_CAP_PROP_FRAME_COUNT);
    
    	//从第N-100帧开始显示
    	int Pos =100;
    	cvSetCaptureProperty(G_capture,CV_CAP_PROP_POS_FRAMES,Pos);  
    
    	//建立进度条
    	if(frames!=0)
    	{
    		cvNamedWindow("VideoBar",CV_WINDOW_AUTOSIZE);
    		cvCreateTrackbar("Trackbar Name","VideoBar" ,&G_slider_position,frames, onTrackbarSlide);
    	}
    
    	return true;
    }

    控制效果:

     






  • 相关阅读:
    Use JAWS 14 in a VM
    远程文件拷贝
    MVA Prototype Only User License
    Global.asax 详解
    GridView of different size items
    Windows Phone 8, 添加Map控件
    动态规划——递归写法和递推写法
    守形数
    遍历链表
    成绩排序
  • 原文地址:https://www.cnblogs.com/wishchin/p/9200118.html
Copyright © 2011-2022 走看看