我正在尝试使用罗技 c930e 网络摄像头对多人进行人脸识别。所以我想在 python 中使用 opencv 编程来缩放 c930e 网络摄像头。
我曾尝试调整图像大小,但我希望使用 python 编程将相机缩放并聚焦在固定距离上。
我希望在一台计算机上连接多个网络摄像头,并且所有网络摄像头使用编程具有不同的固定缩放值。
最佳答案
根据其specs , C930e 是 UVC -兼容(与大多数网络摄像头一样),并且它很可能允许通过 UVC 控制缩放级别。
要了解相机通过 UVC 提供的控制,在 Ubuntu 上您可以使用 v4l2-ctl
,它位于 v4l-utils
包中。以下是 Microsoft LifeCam Cinema 的 v4l2-ctl -d 0 -l
输出的一部分:
...
focus_absolute (int) : min=0 max=40 step=1 default=0 value=8
focus_auto (bool) : default=0 value=0
zoom_absolute (int) : min=0 max=10 step=1 default=0 value=0
您可以更改控件,例如,使用 v4l2-ctl -d 0 -c zoom_absolute=10
。
为了从 Python 执行此操作,我使用了 subprocess.check_output()
.我为获取和设置 V4L2 控件而编写的实用函数在 GitHub 上并具有一系列附加功能,例如处理默认值、多个控件和多批控件,这使得代码比简单的“更改缩放级别”示例更加复杂。 (该函数是 SkinnerTrax 的一部分,这是我编写的 Drosophila 实时跟踪器。)还有 pyuvc ,貌似比较跨平台,不过我没试过。
关于python - 如何使用 python 编程使用 opencv 缩放罗技网络摄像头 c930e?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54033494/