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;
}

控制效果:

 






转载于:https://www.cnblogs.com/wishchin/p/9200118.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值