Linux:获取相机设备编号

Linux: getting camera device number

本文关键字:编号 相机 获取 Linux      更新时间:2023-10-16

我有:带有内置摄像头的Linux笔记本电脑,2个其他摄像头,基于OpenCV的程序。

我需要:将这两个相机的设备编号自动传递给程序。

在OpenCV中,您可以使用videoCapture.open(n);打开相机,其中videoCapturecv::VideoCapture的对象,n是要打开的相机的设备编号。我的程序使用两个网络摄像头。在这里,OpenCV部分问题已经结束。

通常,此n是硬编码或由用户手动传递的。我想编写一个脚本,自动检测两个所需相机的设备编号。但内置摄像头是障碍。

加载时,Linux 默认内置摄像头的设备编号为 0 。两个连接的USB摄像头会相应地12数字。当您重新启动笔记本电脑时,您很可能会混淆所有数字,例如内置摄像头 - 102 - 用于USB摄像头。无论如何,当我切换平台并在没有内置摄像头的桌面上执行程序时,我必须更改代码中的设备编号。

我以为我可以编写 sh 脚本来解析 lsusb | grep Logitech 的输出(这两个 USB 网络摄像头是罗技的网络摄像头)并根据 USB 总线号获取设备编号,但重新启动会阻碍这一点。

我将不胜感激任何关于我可以检查的问题的想法和想法。

我认为您应该枚举USB设备 - 您可以在此处查看有关如何执行此操作的详细信息:Linux/C++ 中的枚举 USB 设备

有关之前与您类似的问题,请参阅: 如何在 OpenCV 2.3 中计算相机?