如何通过 name/ID 而不是设备索引来读取 OpenCV 相机?

How to read OpenCV camera by name/ID instead of device index?

在python你可以做到

import cv2
cap = cv2.VideoCapture(index)

index 打开网络摄像头,其中 index 是一个范围为 0,1,2,3...

的数字

但是如果我有多个摄像头并且顺序是任意的,我的摄像头访问代码将不可靠。

有没有办法在 Windows10 上使用 OpenCV 打开具有名称或 ID 的特定相机?怎么做?

您可以开始查看 linux 的 udev 规则,并查看 windows 的相同规则。

udev 规则允许您配置 USB 设备,一旦它们连接到端口,使用存储在设备上的唯一属性,如供应商 ID、序列号、产品 ID 等。

我使用了这个库,它似乎可以工作:https://github.com/pvys/CV-camera-finder

检查这个可能也很有趣:https://github.com/econsystems/opencv