我试图连接到连接到不同的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
是在程序closures时用release()
来调用的。
当我访问多个摄像头时出现问题。 三个摄像机中只有一个摄像机返回图像。 其他人返回我在控制台上看到的错误(每次运行都不一样):
然而,在重新插入USB摄像头之后,这在第一次运行时起作用,而不是在程序的进一步运行中。 思考?