WSL2调用摄像头并使用OpenCV - 教程

news/2025/11/21 16:39:40/文章来源:https://www.cnblogs.com/ljbguanli/p/19253614

WSL2调用摄像头并使用OpenCV - 教程

WSL2(Windows Subsystem for Linux 2)默认情况下无法直接访问 USB 设备,包括摄像头。本文将详细介绍如何通过重新编译 WSL2 内核来启用 USB 摄像头支持。

前言

要在 WSL2 中使用 USB 摄像头,我们需要完成以下三个主要步骤:

  1. 将摄像头从 Windows 连接到 WSL2
  2. 重新编译 WSL2 Linux 内核以包含摄像头驱动
  3. 配置 WSL2 使用新编译的内核

一、将摄像头连接到 WSL2

1.1 安装 USB/IP 工具

以管理员身份打开 PowerShell,执行以下命令安装 usbipd

winget install usbipd

1.2 列出已连接的 USB 设备

usbipd list

该命令会显示所有连接到系统的 USB 设备,找到你的摄像头对应的 BUSID(例如 1-6)。

1.3 绑定摄像头设备

将摄像头绑定以便共享给 WSL2(假设摄像头的 BUSID 是 1-6):

usbipd bind -b 1-6

1.4 验证绑定状态

再次查看设备列表,确认摄像头状态已更新为 Shared

usbipd list

1.5 将设备附加到 WSL2

usbipd attach -w -b 1-6

再次运行usbpid list, 摄像头STATE变为Attached

1.6 在 WSL2 中验证连接

打开 WSL2 终端,使用以下命令验证摄像头已成功连接:

lsusb

如果看到摄像头设备信息,说明连接成功。

然而此时运行调用摄像头的代码,会显示报错,因为WSL2是一个独立的子系统,并没有摄像头驱动,需要继续重新编译内核

[ WARN:0@8.994] global cap_v4l.cpp:914 open VIDEOIO(V4L2:/dev/video0): can't open camera by index
[ WARN:0@8.994] global cap.cpp:478 open VIDEOIO(V4L2): backend is generally available but can't be used to capture by index
无法打开摄像头 0
错误: 无法打开摄像头

二、重新编译 WSL2 Linux 内核

2.1 更新 WSL

在 PowerShell 中执行:

wsl --update

2.2 安装编译依赖

在 WSL2 Ubuntu 终端中,更新系统并安装必要的编译工具:

sudo apt update && sudo apt upgrade -y && sudo apt install -y build-essential flex bison dwarves libssl-dev libelf-dev libncurses-dev

2.3 检查 WSL2 内核版本

uname -r

记录输出的版本号,例如 6.6.87.2-microsoft-standard-WSL2

2.4 下载对应版本的内核源码

根据上一步获取的版本号,下载对应的 WSL2 内核源码:

cd /usr/src
TAGVERNUM=6.6.87.2
TAGVER=linux-msft-wsl-${TAGVERNUM}
sudo git clone \-b ${TAGVER} \https://github.com/microsoft/WSL2-Linux-Kernel.git \${TAGVERNUM}-microsoft-standard \&& cd ${TAGVERNUM}-microsoft-standard

2.5 准备内核配置文件

sudo cp /proc/config.gz config.gz \&& sudo gunzip config.gz \&& sudo mv config .config

2.6 配置内核选项

启动内核配置界面:

依次选择Device Drivers - Multimedia support

将Filter media drivers 的方框中按Y,注意按Y以后显示的是 *

然后继续来到Media device types,Cameras and video grabbers 方框输入Y

上述流程可总结如下

sudo make menuconfig
```
在配置界面中,使用方向键导航,按 `Y` 键选中选项(选中后会显示 `[*]`),按照以下路径启用所需的驱动:
**必须启用的选项:**
```
Device Drivers→ Multimedia support→ Filter media drivers [Y]→ Media device types→ Cameras and video grabbers [Y]

操作说明:

  • 使用方向键上下移动
  • Enter 进入子菜单
  • Y 启用选项(显示为 [*]
  • N 禁用选项
  • M 编译为模块(显示为 <M>

配置完成后,选择 Save 保存配置,然后选择 Exit 退出。

2.7 编译内核

使用多核并行编译以加快速度:

sudo make -j$(nproc) KCONFIG_CONFIG=.config \&& sudo make modules_install -j$(nproc) \&& sudo make install -j$(nproc)

编译过程可能需要较长时间,请耐心等待。

三、安装和配置新内核

3.1 复制内核文件到 Windows

编译完成后,将生成的 vmlinux 内核文件复制到 Windows 系统:

sudo cp vmlinux /mnt/c/Users//WSL2/kernel-6.6.87.2

注意:将 <UserName> 替换为你的 Windows 用户名,目标路径可以自定义。
而且这是将内核文件改路径以后重命名为kernel-6.6.87.2,不是放到kernel-6.6.87.2文件夹中

3.2 创建 WSL 配置文件

在 Windows 用户目录下创建 .wslconfig 配置文件:

vim /mnt/c/Users//.wslconfig

i 键进入编辑模式,添加以下内容:

[wsl2]
kernel=C:\\Users\\\\WSL2\\kernel-6.6.87.2

注意:

  • <UserName> 替换为你的 Windows 用户名
  • Windows 路径需要使用双反斜杠 \\

ESC 退出编辑模式,输入 :wq 保存并退出。

四、测试摄像头

4.1 重启 WSL2

在 PowerShell 中执行:

wsl --shutdown

4.2 重新连接摄像头

usbipd attach -w -b 1-6

4.3 验证设备连接

在 WSL2 终端中:

lsusb

4.4 验证新内核加载

检查内核版本,如果成功加载自定义内核,版本号末尾会显示 + 号:

uname -r -v
```
输出示例:
```
6.6.87.2-microsoft-standard-WSL2+

4.5 安装和测试摄像头应用

安装 V4L 工具和摄像头查看器:

sudo apt install v4l-utils guvcview

启动摄像头应用:

sudo guvcview

如果一切正常,你应该能看到摄像头的实时画面。

4.6 使用OpenCV

继续在WSL2中新建如下python脚本,使用OpenCV展示

import cv2
cap = cv2.VideoCapture(0)  # /dev/video0
cap.set(3,640)
cap.set(4,480)
cap.set(cv2.CAP_PROP_FPS,10)
#cap.set(cv2.CAP_PROP_FOURCC,cv2.VideoWriter.fourcc('Y','U','Y','V')) # 下面不行可以尝试这个
cap.set(cv2.CAP_PROP_FOURCC,cv2.VideoWriter.fourcc('M','J','P','G'))
while(True):ret, frame = cap.read()if not ret:print("Failed to read the image.")breakcv2.imshow('Video', frame)key = cv2.waitKey(1)
cap.release()

即可成功调用摄像头

参考资料

  1. PINTO0309/wsl2_linux_kernel_usbcam_enable_conf
  2. WSL2 Webcam Support - Medium
  3. https://blog.csdn.net/chengpengfei09121870/article/details/142762468?ops_request_misc=elastic_search_misc&request_id=db0ed97b4b37eb05f6c98156194cf227&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~ElasticCommercialInsert~search_v2-3-142762468-null-null.142^v102^pc_search_result_base3&utm_term=WSL2%E8%B0%83%E7%94%A8%E6%91%84%E5%83%8F%E5%A4%B4&spm=1018.2226.3001.4187

总结

通过重新编译 WSL2 内核并启用相应的 USB 摄像头驱动,我们可以在 WSL2 环境中成功使用 USB 摄像头。虽然这个过程较为复杂,但一旦配置完成,就可以在 Linux 环境中进行各种摄像头相关的开发和测试工作。

希望本教程对你有所帮助!如有问题,欢迎在评论区讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/972289.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity动态将3d标牌UI加载到模型子物体下,UI变形问题

unity动态将3d标牌UI加载到模型子物体下,UI变形问题//1、直接生成模型GameObject prefab = GameObject.Instantiate(modeinfo, SelectedModel.transform);//2、先生成在世界下,再设置为子物体prefab.transform.SetPa…

2025湛江一对一辅导机构测评榜:从城区到县域的靠谱补习方案全解析

在湛江,从赤坎区世贸大厦周边为小学孩子抓学习习惯的家长,到霞山区鼎盛广场附近焦虑初中孩子成绩滑坡的家庭;从坡头区、麻章区紧盯高中备考冲刺的父母,到遂溪县、徐闻县、廉江市、雷州市、吴川市渴求优质教育资源的…

常州一对一家教机构哪个好?2026权威测评榜单:从师资到提分,5家主流平台深度对比

常州一对一辅导机构哪个好?一对一家教平台怎么选?这是无数常州家长为孩子找辅导时最头疼的问题。宣传页上的 “提分王牌” 老师,可能连苏教版教材和常州中高考考纲都不熟悉;线下机构动辄要求预缴数万元,孩子不适应…

二次验证码介绍及使用

什么是2FA验证码? 概念解析 2FA(Two-Factor Authentication,两步验证)验证码可以理解为学名,俗名也可以叫做:二次验证码,将军令,Google Authenticator(谷歌动态口令) 2FA是一种安全机制,通过要求用户提供两…

2025汕头一对一家教机构口碑排名:从小学到高中,权威测评5家靠谱机构,实用方案覆盖金平龙湖等全区域

“给孩子选汕头一对一辅导机构,比挑学校还费心!”这是汕头金平区家长陈女士的感慨。她的孩子上初三,数学偏科严重,在龙湖区、澄海区试了2家课外补习机构,要么老师照本宣科,要么课后没人跟进,钱花了不少,成绩没…

Veeam Data Platform 13.0 发布 - 数据保护和管理解决方案

Veeam Data Platform 13.0 发布 - 数据保护和管理解决方案Veeam Data Platform 13.0 发布 - 数据保护和管理解决方案 面向混合云和多云的 云端、虚拟和物理环境 备份和恢复 监控和分析 恢复编排 请访问原文链接:https…

2025年7大AI写论文工具推荐|一键生成+文献智能整合,毕业论文查重无忧!

2025年11月校园宿舍里,小李为论文发愁,小张分享了[AI论文及时雨](https://paperrain.cn/?df=cnblogs_ipapers)工具。本文推荐2025年7大AI写论文工具,包括AI论文及时雨、巨鲸写作、ChatGPT等。各工具功能丰富,如AI…

国标GB28181算法算力平台EasyGBS如何为养老院构建全天候安全防线?

国标GB28181算法算力平台EasyGBS如何为养老院构建全天候安全防线?一、方案背景 在老龄化进程不断加快的当下,养老院作为老年人重要的生活场所,其安全与管理面临着诸多挑战。传统监控方式存在画面模糊、信息延迟、管…

江苏省做合同纠纷比较靠谱的律所推荐及选择参考

在经济活动频繁的江苏省,合同作为企业及个人间权利义务约定的重要载体,其纠纷的妥善处理对维护合法权益至关重要。选择一家专业、可靠的律所协助解决合同纠纷,能够有效降低法律风险,提升纠纷解决效率。本文将围绕江…

如何结合langchain、neo4j搭建关联检索问答

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年四川科技展馆设计公司权威推荐榜单:科技展厅设计/科技展览设计/城市规划馆设计源头公司精选

在数字化浪潮与科技创新双轮驱动的当下,科技展馆已成为展示区域创新能力、普及科学知识的重要窗口。据行业调研数据显示,2025年中国展示设计市场规模预计将达到85亿元,年复合增长率维持在10% 左右。四川作为西南地区…

江苏省婚姻家庭纠纷律所推荐:专业法律服务机构盘点

在社会生活中,婚姻家庭纠纷涉及情感、财产、子女等多方面问题,选择专业的法律服务机构至关重要。优质的律所能够凭借专业知识和丰富经验,为当事人提供合理的解决方案,维护合法权益。以下为江苏省内部分在婚姻家庭纠…

携手哲讯,以智慧赋能,驾驭数字未来——您值得信赖的SAP本土化专家

携手哲讯,以智慧赋能,驾驭数字未来——您值得信赖的SAP本土化专家 在当今瞬息万变的商业环境中,数字化转型已不再是可选项,而是企业生存与发展的必由之路。它如同一场波澜壮阔的远航,企业需要一张精准的航海图、一…

2025中山一对一辅导机构权威测评榜!家教培训平台口碑实测总结报告

中山家长们为孩子找一对一辅导机构时,常常陷入两难:线下机构通勤耗时,线上平台需下载APP操作繁琐;有的宣传名师授课,实际老师经验不足;有的收费虚高,提分效果却无从考证。据中山教育行业不完全统计,2024年本地…

学习率对于PPO训练的作用

第一部分:PPO的学习率机制 1. 学习率是什么? 在深度学习中,学习率是一个超参数,它控制了我们在每次参数更新时,沿着梯度反方向前进的步长。公式表示:新参数 = 旧参数 - 学习率 * 梯度 学习率过大:更新步伐太大,…

佛山一对一家教机构哪家好?2025 最新口碑测评与高性价比推荐指南

孩子成绩提分缓慢、偏科严重,佛山家长们在挑选一对一家教机构时屡屡踩坑。不少机构打着 “名师辅导”“签约提分” 的旗号,实际师资良莠不齐,教学方法僵化;部分机构收费高昂却缺乏针对性,退费流程繁琐,售后保障形…

徐州一对一辅导机构哪个好?2026最新家教平台TOP5权威测评!精准提分数据溯源

“试了3家机构花了两万多,孩子学习没起色,连问题出在哪都不知道!”家住徐州鼓楼区的张爸爸的烦恼,在云龙区、泉山区的城区家长中,在邳州市、丰县、沛县的县域家庭里,几乎是通病。你是不是也面临这样的困境:选线…

微波烘干设备适用物料及工业应用场景解析

微波烘干设备适用物料及工业应用场景解析 微波烘干设备作为一种高效节能的工业加热设备,其适用物料覆盖多个领域,包括食品加工(如谷物、坚果、果蔬片)、中药材(如枸杞、金银花、三七)、化工原料(如催化剂、树脂…

微波烘干设备操作流程及相关设备应用解析

微波烘干设备是利用微波技术对物料进行快速干燥的工业设备,其操作流程的规范性直接影响烘干效率与产品质量。了解科学的操作步骤,有助于提升设备运行稳定性和物料处理效果,广泛应用于食品、医药、化工、建材等多个行…

2025 最新推荐碳纤木门厂家口碑排行榜:PUR 无缝封边 + 45 磁吸静音技术领衔,环保无甲醛优质企业全解析耐磨防刮/环保无甲醛/防污易清洁/耐腐蚀/铝/LVL 龙骨/复合碳纤木门公司推荐

引言 随着全球家居环保理念升级与消费需求精细化,碳纤木门凭借轻量化、高强度、低损耗的核心优势,成为家居建材领域的热门选择,市场规模年增速保持在 15% 以上。但行业快速发展中,材质以次充好、环保不达标、工艺粗…