我正试图从Minoru立体声网络摄像头中获取一对图像,目前通过linux上的opencv。 当我强制低分辨率时,它工作正常:
left = cv2.VideoCapture(0)
left.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, 320)
left.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 240)
right = cv2.VideoCapture(0)
right.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, 320)
right.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 240)
while True:
_, left_img = left.read()
_, right_img = right.read()
...
但是,我正在使用图像创建深度贴图,更高的分辨率会很好。但是,如果我尝试保留默认值,或强制解析为640x480,我就会遇到错误:
libv4l2:开启错误:设备上没有剩余空间
我已经阅读了有关USB带宽的限制,但是:
我尝试了为每个图像读取创建和发布单独的VideoCapture的解决方法,但总体来说这有点太慢(< 1FPS),更重要的是,图像对于立体匹配工作太不同步了。
我试图理解为什么会失败,以便找到解决方案。看起来v4l正在分配一个全局太小的缓冲区,由2个捕获对象以某种方式使用。 任何帮助将不胜感激。
答案 0 :(得分:0)
我遇到了同样的问题并找到了答案 - https://superuser.com/questions/431759/using-multiple-usb-webcams-in-linux
由于两个minoru摄像机都显示格式为“YUYV'”,这可能是USB带宽问题。我将每秒的帧数降低到20(24小时没有工作),我可以看到640x480的图像。