我有一个 python 环境(在 Windows 10 上),它使用 OpenCV VideoCapture
类连接到多个 USB 摄像头。
据我所知,除了 VideoCapture
类构造函数 / open
方法中的 device
参数之外,没有其他方法可以识别 OpenCV 中的特定相机。
问题是设备参数会根据实际连接的摄像头数量和 USB 端口而变化。
我希望能够识别特定的相机并找到它的“设备索引”或“相机索引”,无论连接了多少相机以及连接到哪些 USB 端口。
有人可以建议一种实现该功能的方法吗? python 代码更可取,但 C++ 也可以。
原文由 Elad Maimoni 发布,翻译遵循 CC BY-SA 4.0 许可协议
据我所知,openCV 会枚举设备并将其索引用作相机索引。但它枚举的方式在后端可能有所不同。无论如何,如果您可以像 OpenCV 那样枚举设备,则可以匹配设备的索引,其信息取决于您的代码。
因此,在 Windows 环境下,您可以使用 MSMF 或 DSHOW 作为后端。如果您使用 MSMF 作为后端,我创建了一个简单的函数来列出设备并将其名称与其索引匹配。这里: https ://github.com/pvys/CV-camera-finder。
如果您使用 DSHOW 作为背景,这里有一篇不错的文章: https ://www.codeproject.com/Articles/1274094/Capturing-Images-from-Camera-using-Python-and-Dire