首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WSL - webcam USB :不能按索引打开摄像机

WSL - webcam USB :不能按索引打开摄像机
EN

Stack Overflow用户
提问于 2022-05-16 07:10:06
回答 1查看 2.4K关注 0票数 2

我遵循了本教程:https://github.com/dorssel/usbipd-win/wiki/WSL-support#usbip-client-tools

我成功地将我的USB摄像头与我的WSL2连接起来,但无法打开相机。

代码语言:javascript
运行
复制
$lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 046d:08cb Logitech, Inc. Mic (Notebooks Pro)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

我的摄像头是Logitech公司的麦克风(笔记本专业),我的程序:

代码语言:javascript
运行
复制
import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):

    ret, frame = cap.read()
    if ret:

        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

        cv2.imshow('frame',gray)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break
cap.release()
cv2.destroyAllWindows()

它显示了

代码语言:javascript
运行
复制
[ WARN:0@0.009] global /io/opencv/modules/videoio/src/cap_v4l.cpp (889) open VIDEOIO(V4L2:/dev/video0): can't open camera by index

我使用v4l-utils查询容器的视频设备。

代码语言:javascript
运行
复制
v4l2-ctl --list-devices
Failed to open /dev/video0: No such file or directory

我在设备驱动程序中添加了一些配置,比如@NotTheDr01ds说,现在我的相机用命令显示在WSL2中

代码语言:javascript
运行
复制
v4l2-ctl --list-devices
UVC Camera (046d:08c9) (usb-vhci_hcd.0-1):
        /dev/video0
        /dev/video1

但是当我试图运行我的程序时,它显示了

代码语言:javascript
运行
复制
[ WARN:0@10.310] global /io/opencv/modules/videoio/src/cap_v4l.cpp (1000) tryIoctl VIDEOIO(V4L2:/dev/video0): select() timeout.

照相机的光线是开着的,但不能捕捉到任何东西。我尝试了以下命令:

代码语言:javascript
运行
复制
lsmod
rmmod uvcvideo
modprobe uvcvideo nodrop=1 timeout=5000

但它所显示的错误

代码语言:javascript
运行
复制
rmmod uvcvideo
rmmod: ERROR: Module uvcvideo is builtin.

我还没有找到任何解决办法。有什么建议吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72255353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档