如何使用opencv和python编程缩放罗技网络摄像头c930e?

Aka*_*xit 2 python opencv image-processing face-recognition

我正在尝试使用罗技 c930e 网络摄像头对多人进行人脸识别。所以我想使用 python 中的 opencv 编程来缩放 c930e 网络摄像头。

我曾尝试调整图像大小,但我希望相机应该使用 python 编程缩放并聚焦在固定距离上。

我希望在一台计算机上连接多个网络摄像头,并且所有网络摄像头都使用编程具有不同的固定变焦值。

Ulr*_*ern 7

根据其规格,C930e兼容UVC(与大多数网络摄像头一样),并且很可能允许通过 UVC 控制缩放级别。

为了弄清控制相机通过UVC提供,在Ubuntu上你可以使用v4l2-ctl,这是在包v4l-utils。这v4l2-ctl -d 0 -l是 Microsoft LifeCam Cinema 的部分输出:

             ...
             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
Run Code Online (Sandbox Code Playgroud)

您可以更改控件,例如,使用v4l2-ctl -d 0 -c zoom_absolute=10

为了从 Python 做到这一点,我使用了subprocess.check_output(). 我写的用于获取和设置 V4L2 控件的实用函数在GitHub 上,并且有一堆附加功能,例如处理默认值、多个控件和多批控件,这使得代码比简单的“更改缩放级别”更复杂”的例子是。(该功能是我写的果蝇实时跟踪器SkinnerTrax 的一部分。)还有pyuvc,它看起来相对跨平台,但我没有尝试过。