Я пытаюсь одновременно передавать изображения с 3 устройств Logitech Webcam Pro 900, используя OpenCV 2.1 в Ubuntu 11.10.Драйвер uvcvideo загружается для них.
Захват двух устройств работает нормально, однако с тремя я сталкиваюсь с ошибкой нехватки места для третьего:
libv4l2: error turning on stream: No space left on device
Я, кажется, сталкиваюсь сэта проблема: 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..)
и пытаюсь захватить все камеры в цикле как
cap0.retrieve(frame0);
Это отлично работает для N = 2 камер.Когда я устанавливаю N = 3, открывается третье окно, но изображение не появляется, и на консоли появляется спам, полный ошибок V4L2.Точно так же, когда я устанавливаю N = 2 и пытаюсь открыть третью камеру, скажем, Cheese (простое приложение для захвата веб-камеры), это тоже не работает.
Теперь приходит большое но: После попытки guvcview, запустивВ трех случаях я мог просматривать три камеры одновременно (без проблем с точки зрения частоты кадров или связанных с ними), так что это не похоже на аппаратную проблему.Я полагаю, что есть какое-то свойство, которое я должен установить, но я не уверен, что это такое.Я изучил MJPEG (который эти камеры поддерживают), но мне не удалось установить это свойство или определить, в каком режиме (yuyv?) Они работают, если я запускаю их из OpenCV.
Мысли