我想从“avi文件”中读取视频文件,然后逐帧输入以在openCV中处理它。 我怎样才能做到这一点? openCV中是否有相应的功能?我应该使用视频阅读框架吗?
阅读视频文件的好框架是什么?
答案 0 :(得分:5)
使用视频序列
从视频序列中捕获帧
从相机初始化捕获:
CvCapture* capture = cvCaptureFromCAM(0); // capture from video device #0
从文件初始化捕获:
CvCapture* capture = cvCaptureFromAVI("infile.avi");
Capturing a frame:
IplImage* img = 0;
if(!cvGrabFrame(capture)){ // capture a frame
printf("Could not grab a frame\n\7");
exit(0);
}
img=cvRetrieveFrame(capture);// retrieve the captured frame
要同时从多台摄像机获取图像,请先从每台摄像机获取图像。抓取完成后检索捕获的图像。
发布捕获源:
cvReleaseCapture(&capture);
注意设备捕获的图像由捕获功能分配/释放。没有必要明确释放它。