小编gee*_*eez的帖子

在Linux上使用OpenCV捕获多个网络摄像头(uvcvideo)

我试图在Ubuntu 11.10上使用OpenCV 2.1同时从3台Logitech Webcam Pro 900设备流式传输图像.uvcvideo驱动程序会加载这些.

捕获两个设备工作正常,但有三个我遇到空间错误第三个:

libv4l2: error turning on stream: No space left on device
Run Code Online (Sandbox Code Playgroud)

我似乎遇到了这个问题:http: //renoirsrants.blogspot.com.au/2011/07/multiple-webcams-on-zoneminder.html我试图做怪癖= 128(或几乎任何其他两个权力的价值)技巧但无济于事.我还尝试了另一台带有两个USB 2.0集线器的机器,并将两个摄像头连接到一个,第三个摄像头连接到第二个,这导致了同样的问题.我大致如下初始化(使用N个摄像头,因此结果实际上放入STL向量):

cv::VideoCapture cap0(0); //(0,1,2..)
Run Code Online (Sandbox Code Playgroud)

并尝试捕获循环中的所有摄像机

cap0.retrieve(frame0);
Run Code Online (Sandbox Code Playgroud)

这适用于N = 2个摄像头.当我设置N = 3时,第三个窗口打开但没有图像出现,控制台被垃圾邮件充满了V4L2错误.同样,当我设置N = 2,并尝试打开第三个摄像头时说干酪(简单的网络摄像头捕获应用程序),这也不起作用.

现在变得很大但是:在通过启动三个实例尝试guvcview之后,我能够同时查看三个摄像头(在帧速率或相关方面没有问题),因此它似乎不是硬件问题.我认为我应该设置一些属性,但我不确定那是什么.我已经研究了MJPEG(这些相机似乎支持),但是没有成功设置这个属性,或者检测它们在运行时是从OpenCV启动它们的模式(yuyv?).

思考?

webcam opencv v4l2

12
推荐指数
3
解决办法
2万
查看次数

标签 统计

opencv ×1

v4l2 ×1

webcam ×1