opencv:从gphoto2获取一系列图像

时间:2014-01-26 17:02:21

标签: c++ opencv

我正在尝试通过管道将gphoto2电影捕获的输出转移到我的opencv程序

gphoto2 --capture-movie --stdin | ./myexe

我的第一次尝试就是这样做:

while(1)
{
  std::stringstream ss;
  ss <<  "/dev/stdin"; 
  cv::Mat m = cv::imread(ss.str());
  namedWindow( "LiveView", WINDOW_AUTOSIZE );
  imshow( "LiveView", m );                 
  waitKey(1);
}

但遗憾的是,在编译作品时,执行没有,我得到了

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /build/buildd/opencv-2.4.2+dfsg/modules/core/src/array.cpp, line 2482 terminate called after throwing an instance of 'cv::Exception'
what():  /build/buildd/opencv-2.4.2+dfsg/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat

我看到类似的问here,但它对我不起作用 - 编译失败

readbytes=read(fileno(stdin),ca,BUFSIZE);
error: no matching function for call to ‘read(int, char [10240], int)’

我是c ++ / opencv的新手,所以我可能会遗漏一些包含或其他东西。 因为我是新用户,所以我不能在那里请求帮助/澄清,所以我决定提出一个新问题。

1 个答案:

答案 0 :(得分:0)

这种管道似乎是不好的编码实践。使用libgphoto API提取图像/影片并将其与OpenCV一起使用。 它听起来比听起来容易。请参阅此博文:http://sepharads.blogspot.nl/2011/11/camera-tethered-capturing-using.html