我正在参与一个团队项目,我有一个源代码。该代码需要OPEN CV,因为我们正在进行图像处理。
我们需要捕获视频,然后执行一些功能。该视频位于项目的路径中。
发生这种情况,为了捕捉视频我们首先定义一条路径,如:
char *videofile = "video-tp2.avi";
然后我们抓住了:
CvCapture *capture;
capture = cvCaptureFromFile(videofile);
最后,我们检查是否有捕获,如果我们没有视频文件,系统可能会发出警报。恰恰相反,系统会在视频存在且在项目中时发出警报
if (!capture)
{
fprintf(stderr, "Erro ao abrir o ficheiro de vídeo!\n");
return 1;
}
答案 0 :(得分:1)
cvCapture 是documentations引用为black-box
的结构:
注意:在C API中,使用黑盒结构CvCapture代替 VideoCapture。
您可以尝试cv.QueryFrame(capture)
。如果失败,它将返回 NULL (请参阅此example):
IplImage* frame;
frame = cvQueryFrame(capture);
if(!frame) {
// FAIL
}
但是,您应切换到C++
界面,因为C
API已弃用(请参阅here)