Ошибка libv4l2: на устройстве не осталось места

0

У меня две разные камеры. Я использовал ниже простой код, и я получаю сообщение об ошибке. На этом сайте есть аналогичный вопрос, но ответа нет. Сообщение об ошибке:

libv4l2: error turning on stream: No space left on device
VIDIOC_STREAMON: No space left on device
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file 
/home/OpenCV/opencv-2.4.10/modules/highgui/src/window.cpp, line 269

Код:

VideoCapture cap(2); 
VideoCapture cap2(1); 

if(!cap.isOpened())  // check if we succeeded
{
    cout << "Webcam cannot open!\n" ;
    return -1;
}
if(!cap2.isOpened())  // check if we succeeded
{
    cout << "Webcam2 cannot open!\n" ;
    return -1;
}
namedWindow( "Window1", CV_WINDOW_AUTOSIZE );
namedWindow( "Window2", CV_WINDOW_AUTOSIZE );
for(;;)
{
    iKey = waitKey(5);
    if (iKey == ESC) {  break;  }
    cap >> frame;
    cap2 >> frame2;

    imshow("Window1", frame);
    imshow("Window2", frame2);
}

EDIT 1 Эти камеры используют один и тот же концентратор в соответствии с моим поиском на веб-сайте. Я сделал тест для этого, и выход ниже. Я не понимаю, что я должен сделать, чтобы решить эту проблему.

sudo cat /sys/kernel/debug/usb/devices | grep "B: "

B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
B:  Alloc= 37/900 us ( 4%), #Int=  2, #Iso=  0
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0 
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
Теги:
opencv
camera
runtime-error

2 ответа

0
Лучший ответ

Если вы получите раму с низким разрешением, проблема будет решена. Для меня достаточно кода.

VideoCapture cap1 = VideoCapture(1);
VideoCapture cap2 = VideoCapture(2);

cap1.set(CV_CAP_PROP_FRAME_WIDTH, 300);
cap1.set(CV_CAP_PROP_FRAME_HEIGHT, 300);
cap2.set(CV_CAP_PROP_FRAME_WIDTH, 300);
cap2.set(CV_CAP_PROP_FRAME_HEIGHT, 300);
1

У меня такая же проблема с двумя камерами с глубиной (USB) на двух USB-портах рядом друг с другом. Они использовали ту же самую шину usb внутри и были слишком много, поэтому я переключил один на свой USB-порт 3.0 (это еще одна шина), и теперь он работает.

  • 0
    У меня нет портов USB 3.0 :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню