如何使用 python opencv 在 3d 重建的同时使用自动对焦

How to use auto focus along side with 3d reconstruction using python opencv

问题陈述

我以前用固定镜头的罗技网络摄像头做3D重建。每次我改变场景和相机之间的距离时,我都需要手动调整镜头焦距。 (打开盖子和转动镜头旋钮)这很不方便。所以我决定使用具有自动对焦功能的新网络摄像头(Logitech C922)并将其用于项目中。比我注意到的那样,当焦点改变时,图像不仅模糊和清晰度而且缩放比例都有所改变。 我读过关于相机校准的文章,它说我必须在校准时固定焦距,并且在 运行 应用程序时使用相同的焦距。这意味着我每次在新环境中使用相机时都需要重新校准(距离变化导致焦距变化)。

问题

  1. 焦距仅移动镜头形式的图像传感器,是否可以找到相机焦距值与相机矩阵(内部和外部)的关系以及如何?
  2. 如何在不重新校准的情况下使用不同距离的相机?
  1. 用便宜的网络摄像头?号
  2. 给自己买一个更好的镜头,景深更长and/or一个可以关闭的光圈

已编辑

上面的 "cheap webcam" 我指的是任何自动对焦 camera/lens 组合,没有 (a) 高度重复 table 聚焦齿轮系和 (b) 对镜头聚焦控制设置的编程访问。 (a) 点当然是任何形式的校准所必需的。 (b) 点允许​​我们建立一个 table 的校准参数,这些参数以焦点设置为键控。我在某些应用中看到过这种情况,动态聚焦是不可避免的要求,但必要的齿轮往往非常昂贵且易碎。