Opencv中视频播放的控制

今天学习了一下关于使用Opencv播放视频,总的来说还是很简单的。目前我使用的是Opencv中的C语言风格接口函数。需要注意的是输入文件地址需要打两个反斜杠才是能形成转义字符,否则视频文件读取会失败,另外视频播放文件的格式也必须是xvid格式,如果不是还需要在网上下载一个软件对视频文件进行格式转换。

代码如下,注释已经写得十分详细,就不多罗嗦了。

#include "stdafx.h"
#include "cxcore.h"
#include "highgui.h"
#include "cv.h"

using namespace cv;

int sliderPos = 0; //设置视频播放位置全局变量
CvCapture *cap = NULL;//设置视频指针全局变量

//回调函数
void onTrackBarSlide(int pos){
	cvSetCaptureProperty(cap,CV_CAP_PROP_POS_FRAMES,pos);
}

int _tmain(int argc, _TCHAR* argv[])
{
	cvNamedWindow("Video",CV_WINDOW_AUTOSIZE);
	cap = cvCreateFileCapture("D:\\a.avi");
	int frames = (int) cvGetCaptureProperty(cap,CV_CAP_PROP_FRAME_COUNT);//获取视频的总帧数
	if (frames != 0){
		cvCreateTrackbar("Position","Video",&sliderPos,frames,onTrackBarSlide);//创建滚动条
	}
	IplImage *frame;
	while(1){
		frame = cvQueryFrame(cap);
		if (!frame) break;
		sliderPos++;
		cvSetTrackbarPos("Position","Video",sliderPos);//设置滚动条的参数加1
		cvShowImage("Video",frame);
		char c = cvWaitKey(33);
		if (c == 27) break;
	}
	cvReleaseCapture(&cap);
	//cvReleaseImage(&frame);
	cvDestroyAllWindows();
	return 0;
}



你可能感兴趣的:(Opencv中视频播放的控制)