繁体   English   中英

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

[英]How to zoom the logitech webcam c930e using opencv with python programming?

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

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

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

根据其规格,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 的一部分。)还有pyuvc ,它看起来相对跨平台,但我没有尝试过。

罗技 c930e 网络摄像头只是一个外部硬件,如果您希望它使用 python 编程进行缩放和聚焦,则需要一个库来控制网络摄像头(不幸的是,没有任何库)。 没有库来控制摄像头,只能通过软件方式进行缩放和对焦,即使用opencv,没有其他可用的方式。 或者你可以得到一个可编程的相机,比如佳能数码相机,并使用库canon-remote来控制它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM