使用多个摄像头的Videocapture()

问题描述 投票:0回答:1

我的系统中运行着 3 个相同的摄像头,它们之间唯一的区别是 USB 端口的插入位置。我需要使用 OpenCV 为每个相机加载特定的 Python 脚本,我的代码很简单:

capture = cv2.VideoCapture(index)

每个脚本中的索引分别等于0、1、2。当我重新启动电脑并运行相同的代码时,问题就出现了,有时按预期运行,有时 1 或 2 个摄像头已切换其索引(不更改任何代码或从 USB 拔出),因此结果是在没有相应摄像头的情况下加载脚本。

例如,如果在 script2.py 中定义的相机索引为 2,那么我重新启动 PC,现在运行 script2.py 时会加载索引为 0 的相机。

有什么解决办法吗?如何指定 VideoCapture() 的物理端口始终相同?我运行的是Win10

提前致谢

python windows opencv camera port
1个回答
0
投票

我使用了多个相同的 Huddly IQ USB 摄像头和 directShow 后端,这样我就可以使用每个摄像头的序列号来捕获图像。 find_video_devices.exe 文件使用 directShow 列出了摄像机,然后我使用该信息使用 Python 映射注册表中的序列号,并使用 OpenCV 使用正确的索引进行捕获。 我在这里做了一个小存储库。 https://github.com/gabrielsenstig/multicameracapture

© www.soinside.com 2019 - 2024. All rights reserved.