cv :: videocapture无法打开可用的USB摄像头

时间:2015-03-05 16:51:34

标签: c++ linux opencv camera v4l2

我正在尝试连接到连接到不同USB总线的多个USB摄像头(希望能够消除USB引起的带宽瓶颈)。 在访问摄像机之前,我正在使用V4L2 API直接探测它们以查看它们是否可访问。目前,有3个摄像头,V4L2可以看到它们。 然后我尝试使用openCV来访问它们,每个都在它自己的对象中:

this->camera = new cv::VideoCapture(camera_port);
if(this->camera->isOpened()) {
....
    cv::Mat capturedImage;
    bool read;
    read = this->camera->read(capturedImage);
....
}

其中camera_port是0,1,2。 显然this->camera在程序关闭时使用release()调用。

当我访问超过1台相机时出现问题。三个中只有一个相机返回图像。其他人返回我在控制台上看到的错误(每次运行时都不一样):

  • libv4l2:错误开启流:连接超时, VIDIOC_STREAMON:连接超时
  • libv4l2:错误开启流:输入/输出错误, VIDIOC_STREAMON:输入/输出错误
  • libv4l2:启用流错误:参数无效, VIDIOC_STREAMON:参数无效
  • 其他一些错误,但以上是最常见的错误

但是,这在重新插入USB摄像头后首次运行时有效,但在程序的进一步运行时无效。 想法?

0 个答案:

没有答案