Я хочу открыть USB-камеру с OpenCV в C ++, работающем в Linux Mint 18.3. Камера подключена и отлично работает с SoftwareSuite от Common Vision Blocks.
С - lsusb я получаю следующий вывод:
Bus 002 Device 005: ID 1ab2:0001
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0cf3:e300 Atheros Communications, Inc.
Bus 001 Device 003: ID 1bcf:2b95 Sunplus Innovation Technology Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Первая запись, кажется, камера, потому что запись не существует, если камера отключена. Но я не понимаю, почему не отображается имя.
Тогда я обнаружил в интернете, что камера USB находится по пути:
/dev/v4l/by-id/ or /dev/v4l/by-path/
. Запись для /dev/v4l/by-id/
:
usb-CNFEH73N3462520017B2_Integrated_Webcam_HD-video-index0
и запись для /dev/v4l/by-path/
:
pci-0000:00:14.0-usb-0:12:1.0-video-index0
Итак, я хочу открыть pci-0000: 00: 14.0-usb-0: 12: 1.0-video-index0 с помощью OpenCV с помощью:
VideoCapture
cap("/dev/v4l/by-id/usb-CNFEH73N3462520017B2_Integrated_Webcam_HD-video-index0");
Я использую Clion в качестве IDE и обычно запускаю его как root, но в обоих случаях я получаю следующую ошибку:
GStreamer Plugin: Embedded video playback halted; module source reported: Could not read from resource.
OpenCV Error: Unspecified error (GStreamer: unable to start pipeline) in cvCaptureFromCAM_GStreamer
/opencv-3.0.0/modules/videoio/src/cap_gstreamer.cpp, line 773 terminate called after throwing an instance of 'cv::Exception'
Как открыть USB-камеру и как правильно открыть ее с помощью dev/v4l/
?