我正在尝试连接到连接到不同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台相机时出现问题。三个中只有一个相机返回图像。其他人返回我在控制台上看到的错误(每次运行时都不一样):
但是,这在重新插入USB摄像头后首次运行时有效,但在程序的进一步运行时无效。 想法?