python - 在 Windows 机器上用 python 获取视频设备列表
问题描述
我正在开发一个使用 USB 视频设备的软件。我在软件中使用库中的功能cv2.VideoCapture()
。openCV
该功能需要获取视频设备的索引,但我的 USB cam 有时索引 0,有时索引 1 或索引 7。因为软件必须是用户友好的,所以我想获取所有可用 USB 视频设备的列表并让用户选择他想要的设备。最好的方法是获取设备的名称和地址。我尝试搜索较旧的问题,但如果有答案,则用户使用了 c++,我不知道如何在 python 中执行此操作。解决方案应该简单而优雅非常感谢您的帮助,我希望这个问题是可以理解的。
解决方案
有一个解决方案https://github.com/pvys/CV-camera-finder
from pymf import get_MF_devices
device_list = get_MF_devices()
for i, device_name in enumerate(device_list):
print(f"opencv_index: {i}, device_name: {device_name}")
=> opencv_index: 0, device_name: Integrated Webcam
使用 get_MF_devices 函数,您可以接收设备列表(opencv 索引和友好名称)。但是,如果您有多个具有相同友好名称的相机,则此库无法解决您的问题。
推荐阅读
- typescript - 如何让 TypeScript 保证泛型类型具有实现特定方法的属性?
- python - Python 3.7.3 无法将序列的最后一个元素附加到新列表中
- python - Python:ValueError:形状不匹配:形状(3,3)的值数组无法广播到形状(270,3)的索引结果
- kubernetes - 在 kubernetes (minikube) 中使用 ingress-nginx 获取真实的客户端 IP
- c++ - C和C++指针传递和引用传递混淆
- python - 使用具有两个元组的列表作为函数的参数:python
- python - 如何修复 AttributeError: type object 'Book' has no attribute 'published_objects' on django_3.2
- python - 试图从py文件转换为exe
- html - 表格设计不在一行
- excel - 如何正确总结 excel 中的 mm:ss - sum() 不起作用?