cv2 的背后是 OpenCV,但遗憾的是 OpenCV 本身没提供枚举摄像头设备的 API,但通过结果对比我们能发现,它的顺序和操作系统的设备标识是一致的。在 Windows 下,你可以通过读取注册表、或调用 GetDevideInfo 这个 Win32 API 来获取设备信息。这里提供一个封装好了 Python 库:https://github.com/pvys/CV-ca... (我不知道作者为啥把仓库归档了)。Linux/macOS 下硬件编程不熟,但 Linux 下硬件设备都会被挂载在 /dev/ 路径下,比如 /dev/video0 就是默认摄像头,你可以尝试自行遍历一下这个目录,拿到所有摄像头的顺序,再通过 ioctl 函数获取设备名称。
cv2 的背后是 OpenCV,但遗憾的是 OpenCV 本身没提供枚举摄像头设备的 API,但通过结果对比我们能发现,它的顺序和操作系统的设备标识是一致的。
在 Windows 下,你可以通过读取注册表、或调用 GetDevideInfo 这个 Win32 API 来获取设备信息。这里提供一个封装好了 Python 库:https://github.com/pvys/CV-ca... (我不知道作者为啥把仓库归档了)。
Linux/macOS 下硬件编程不熟,但 Linux 下硬件设备都会被挂载在
/dev/
路径下,比如/dev/video0
就是默认摄像头,你可以尝试自行遍历一下这个目录,拿到所有摄像头的顺序,再通过ioctl
函数获取设备名称。