Итак, последние пару дней я пытался использовать свой Kinect v1 (1414) в качестве веб-камеры для проекта с OpenCV (я использую Ubuntu 16.04) . Я уже установил Openkinect freenect (несколько раз) и OpenNI, и я получаю вывод видео, когда запускаю sudo freenect-glview
. Когда я запускаю lsusb
, он распознает камеру и двигатель.
Bus 001 Device 017: ID 045e:02ae Microsoft Corp. Xbox NUI Camera
Bus 001 Device 014: ID 045e:02b0 Microsoft Corp. Xbox NUI Motor
Bus 001 Device 016: ID 045e:02bb Microsoft Corp.
Проблема возникает, когда я пытаюсь использовать камеру как простую веб-камеру для проекта python-OpenCV. Итак, когда в python я запускаю cv2.VideoCapture (0)
, консоль показывает следующую ошибку:
[ WARN:0] VIDEOIO(V4L2:/dev/video0): can't open camera by index
Итак, я прочитал, что использование cv2.VideoCapture (-1)
может работать , но затем появляется следующая ошибка:
[ WARN:0] VIDEOIO(V4L2): can't find camera device
После поиска ошибки в Интернете люди говорили, что если я не могу найти v4l2src
, то необходимо установить Gstream, поэтому я сделал, попробовал с 1.0 и 0.10, но ни один из них не работал.Я также пробовал запустить ls -ltrh / dev / video *
, но показал ls: cannot access '/ dev / video *': нет такого файла или каталога
или запущен v4l2- ctl --list-devices
показывает Не удалось открыть / dev / video0: Нет такого файла или каталога
В конце концов, я понял, что мне нужно найти способ заставить камеру распознаваться система (dev / video0)
. но до сих пор мне не удавалось добиться успеха, поэтому теперь я прихожу к вам и спрашиваю, была ли у кого-нибудь такая же проблема раньше и / или знаете ли вы, как реши.
Заранее спасибо.
Так что я наконец смог решить эту проблему. Что вам нужно проверить, так это следующее:
Если запуск -ltrh /dev/video*
показывает ls: невозможно получить доступ к '/dev/video*
, вам необходимо " gcspa_kinect
(По-видимому, freenect не позволяет использовать его после запуска yopu, например freenect-glview
. "Переустановка" выполняется следующим образом:
sudo modprobe - r gcspa_kinect
, а затем sudo modprobe gcspa_kinect
.
Если вы снова запустите -ltrh /dev/video*
, он покажет распознанное устройство. Теперь вы можете использовать, например, Сыр, чтобы убедиться, что камера работает.
Если вы снова запустите freenect-glview
, вам нужно будет повторить процесс.
Если кто-нибудь знает, как сделать постоянное решение, как сделать так, чтобы камера распознавалась системой как веб-камера, и при этом иметь возможность использовать freenect, это было бы здорово!!