python - 连接多个 USB 摄像头

标签 python opencv computer-vision

我正在尝试连接两个连接到单个 USB 端口的 USB 网络摄像头。 问题是当时只有一个摄像头工作... 我在 python 中使用 OpenCV。 这可能吗? 我的目标是将多台相机连接到一台计算机以进行机器视觉应用。 有什么建议吗?

最佳答案

大多数 USB 网络摄像头都是 USB 2.0,因此您只有 480 Mbit/s 可以共享每个 USB Controller 的网络摄像头。因此,分辨率、帧速率以及是否使用压缩(更好的网络摄像头通常至少支持 MJPG)都很重要。 720p 30 fps 无压缩约为 660 Mbit/s (720*1280*30*3*8)。此外,某些网络摄像头(例如 Microsoft LifeCam)会独立于实际需求保留带宽。在 Linux 上,可以覆盖此保留。这question它的答案对 Linux 有很多有用的信息。对于 Linux 和 Windows,我都添加了 USB 卡( Controller )以增加我可以使用的网络摄像头的数量。 Controller 芯片可以有所作为(下面的一些示例)。我的网络摄像头数量最多的设置是在一个 Linux 机器上安装了 24 个。 paper 的“处理多个网络摄像头”部分我在 bioRxiv 上提供了一些额外的信息。

举一些我遇到的令人惊讶的例子,在一种情况下,我可以使用两个 LifeCam,每个 LifeCam 保留大约 48% 的 USB 2.0 带宽,只有在将鼠标和键盘移动到不同的 USB 端口后才可靠;我最初使用的所有四个端口都在内部使用相同的 USB Controller 。在另一种情况下,NEC (Renesas) 的 D720200 和 D720201 USB 3.0 芯片似乎对 USB 2.0 的支持一般,并且都只支持一个 LifeCam,而不支持两个。对于 VIA 的 VL800,在 720p 时有帧丢失但较低的分辨率工作正常;不过,我是 VL805 的粉丝。

关于python - 连接多个 USB 摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54281449/

相关文章:

c++ - OpenCV 在 C++ 中读取 16 位 tiff 图像

image-processing - 背景扣除

java - 通过多个图像的 3D 点云结果是几条线

python - 为什么对于 Keras 中的 Theano 和 Tensorflow 后端,一对图像之间的 L2 距离会得到不同的结果?

python - 如何在 Python 中更改按钮大小?

python - pytest:指定pytest.ini位置的环境变量

c++ - 找不到加载文件 OpenCVModules.cmake

opencv - 检测图像中对象的位置

python - 用未分割的部分替换图像的分割部分

python - 自定义 404 django 模板