OpenCV挂起来自文件的read(),grab()等

时间:2015-03-25 00:42:19

标签: python c++ opencv

我正在使用OpenCV 2.4.9和g ++。我也尝试过使用python 2.7.8和python 3.4.1。

这是一个简单的例子:

#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;

int main(int argc, char *argv[]) {
  VideoCapture stream;
  if (argc > 1) {
    stream.open(argv[1]);
  } else {
    stream.open(0);
  }
  if (!stream.isOpened()) { 
    cout << "cannot open file";
  }

  while (true) {
    Mat frame;
    stream.read(frame);
    imshow("preview", frame);
    if (waitKey(30) >= 0)
      break;
  }
  return 0;
}

编译时使用:

g++ `pkg-config --libs opencv` -o test test.cpp

使用相机可以正常工作,但是当从文件中读取时,程序才会挂起。 python也是如此。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

终于解决了这个问题。在Fedora 21上,来自存储库的opencv是在没有ffmpeg支持的情况下构建的,因为许多编解码器不是FOSS。从源代码编译就可以了。