【问题标题】:How to zoom the logitech webcam c930e using opencv with python programming?如何使用带有 python 编程的 opencv 缩放罗技网络摄像头 c930e?
【发布时间】:2019-05-30 16:53:47
【问题描述】:

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

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

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

【问题讨论】:

  • 你的操作系统是什么?我在 Linux 机器上使用多个网络摄像头并通过 Python 控制缩放级别。
  • 我使用的是 Ubuntu 18.04,但请告诉我你是如何使用 python 控制缩放级别的。
  • C930e 是否通过 UVC 提供缩放级别控制?
  • Akash,您应该考虑更改接受的答案。

标签: python opencv image-processing face-recognition


【解决方案1】:

根据其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的一部分,我写的果蝇的实时追踪器。)还有pyuvc,好像比较跨平台但是我没试过。 p>

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 在 Linux 上控制与 UVC 兼容的网络摄像头非常容易,C930e 与 UVC 兼容(就像大多数网络摄像头一样),并且很可能允许通过 UVC 控制缩放级别。
    猜你喜欢
    • 2013-09-18
    • 2018-10-31
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    相关资源
    最近更新 更多