Linux:获取相机设备号
Posted
技术标签:
【中文标题】Linux:获取相机设备号【英文标题】:Linux: getting camera device number 【发布时间】:2014-04-01 14:44:06 【问题描述】:我有:带有内置摄像头的 Linux 笔记本电脑、2 个其他摄像头、基于 OpenCV 的程序。
我需要:将这两个摄像头的设备号自动传递给程序。
在 OpenCV 中,您使用videoCapture.open(n);
打开相机,其中videoCapture
是cv::VideoCapture
的对象,n
是您要打开的相机的设备号。我的程序使用两个网络摄像头。这个问题的OpenCV部分到这里就结束了。
通常这个n
是硬编码或由用户手动传递的。我想编写一个脚本来自动检测两个所需摄像机的设备号。但内置摄像头是障碍。
加载时,Linux 默认内置摄像头的设备号为0
。两个连接的 USB 摄像头相应地获得数字 1
和 2
。当您重新启动笔记本电脑时,您很可能会混淆所有数字,例如内置摄像头 - 1
、0
和 2
- 用于 USB 摄像头。无论如何,当我切换平台并在没有内置摄像头的桌面上执行程序时,我必须更改代码中的设备号。
我想我可以编写 sh 脚本来解析 lsusb | grep Logitech
的输出(这两个 USB 网络摄像头是罗技的)并根据 USB 总线编号获取设备编号,但是重启会阻碍这一点。
对于我可以检查问题的任何想法和想法,我将不胜感激。
【问题讨论】:
【参考方案1】:我认为您应该枚举 USB 设备 - 您可以在此处查看有关如何执行此操作的详细信息: Enum USB devices in Linux/C++
关于之前与您类似的问题,请参阅:How to count cameras in OpenCV 2.3?
【讨论】:
以上是关于Linux:获取相机设备号的主要内容,如果未能解决你的问题,请参考以下文章