树莓派上USB摄像头无法被OpenCV识别的问题求助
OpenCV无法检测USB摄像头但系统及其他工具可正常识别的问题
我无法让OpenCV检测到我的USB摄像头。系统似乎可以识别它,使用其他工具甚至可以拍照,但OpenCV无法正常工作。
系统识别USB设备情况
当我列出USB设备时,执行命令:
lsusb
输出结果:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 006: ID 258a:002a SINO WEALTH Gaming KB Bus 001 Device 005: ID 18f8:0f97 [Maxxter] Optical Gaming Mouse [Xtrem] Bus 001 Device 004: ID 214b:7250 Huasheng Electronics USB2.0 HUB Bus 001 Device 003: ID 214b:7250 Huasheng Electronics USB2.0 HUB Bus 001 Device 010: ID 05a3:9230 ARC International Camera Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
其他工具可正常捕获图像
使用fswebcam捕获图像时一切正常,执行命令:
fswebcam -r 1280x720 --no-banner test.jpg
输出结果:
--- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. --- Capturing frame... Captured frame in 0.00 seconds. --- Processing captured image... Disabling banner. Writing JPEG image to 'test.jpg'.
OpenCV捕获图像时的异常情况
尝试用OpenCV捕获图像时出现异常,两种方式均失败:
方式一:指定/dev/videox路径
>>> import cv2 >>> >>> cam = cv2.VideoCapture('/dev/video0') [ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (1824) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module source reported: Could not read from resource. [ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (914) open OpenCV | GStreamer warning: unable to start pipeline [ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (501) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
方式二:使用设备编号
>>> import cv2 >>> >>> cam = cv2.VideoCapture(0) [ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (961) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1 >>>
使用环境
- Raspberry Pi 4 Model B Rev 1.5
- Raspbian
- python 3.9.2
- pip 23.2.1
- python3-opencv==4.5.1(通过
sudo apt install python3-opencv安装)
备注:无法通过pip安装opencv-python
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

