OpenCV的!如何捕捉视频?

时间:2016-06-09 21:58:31

标签: c opencv video image-processing computer-vision

我正在参与一个团队项目,我有一个源代码。该代码需要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;
    }

enter image description here

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