OpenCV VideoCapture无法打开文件,我做错了什么?

时间:2017-05-05 16:48:53

标签: c++ opencv computer-vision ubuntu-14.04 opencv3.1

我正在使用OpenCV 3.1在Ubuntu 14.04上进行编译。尝试打开视频文件时,会出现此错误:

  

"无法打开视频文件"

我安装了我可以安装的所有东西:ffmpeg等.Haven找不到解决方案来检查StackOF上的类似问题。

做什么?

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

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

1 个答案:

答案 0 :(得分: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; 
}