2016-06-09 158 views
0

我参与了一个团队项目,并且我有一个源代码。该代码需要OPEN CV,因为我们正在进行图像处理。OpenCV!如何捕获视频?

我们需要捕捉视频,然后执行一些功能。该视频位于项目的路径中。

偏偏捕捉视频,我们首先定义一个路径,如:

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

+0

如果答案解决您的问题或帮助你,请考虑接受它,另请参阅: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

回答

1

cvCapture是一个结构,其中documentations是指系统警报为black-box

注意:在C API中,使用黑盒结构CvCapture而不是 VideoCapture。

您可以尝试cv.QueryFrame(capture)。它会返回NULL如果失败(见本example):

IplImage* frame; 
    frame = cvQueryFrame(capture); 
    if(!frame) { 
    // FAIL 
    } 

但是因为C API已被弃用,你应该切换到C++接口(见here