2017-05-05 59 views
0

我在使用OpenCV 3.1编译Ubuntu 14.04。当试图打开一个视频文件,它提供了这个错误:OpenCV VideoCapture无法打开文件,我做错了什么?

"Cannot open the video file"

我安装了一切我可以安装:ffmpeg的等方面都没有找到一个解决检查出的StackOF类似的问题。

什么?

cv::VideoCapture cap(argv[1]); 

其中argv [1]是与可执行文件在同一目录中的文件名。

+1

@ΦXocę웃Пepeúpaツ发布 – edd

+0

你能告诉我什么是argv [1]吗? –

+0

argv [1]是一个指向表示我想要打开的文件名的字符串的指针@ΦXocę웃Пpepúpaз – edd

回答

0

如果您的构造函数失败,您可能需要使用.open()方法。所以,如果你想打开一个名为“myVideo.mp4”这是你的项目的文件夹中的文件,你会做以下几点:

cv::VideoCapture cap; 
cap.open("myVideo.mp4"); 

有关此方法的详细信息,请在此documentation link 此外,第26页的来自O'Rilley媒体的学习OpenCV 3书籍为您提供了一个很好的例子。这是我给你作为例子的Gist

#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 
#include <iostream> 

int main() { 
    cv::VideoCapture cap; 
    cap.open("myVideo.mp4"); 
    cv::namedWindow("myVideo", cv::WINDOW_AUTOSIZE); 
    cv::Mat frame; 
    while(true) { 
    cap >> frame; 
    if(frame.empty()){ 
     std::cout << "Could not load the video frames. \n"; 
     break; 
    } 
    cv::imshow("myVideo", frame); 
    if(cv::waitKey(27) >= 0){ 
     std::cout << "Escape pressed \n"; 
     break; 
    } 
    } 
    return 0; 
}