【问题标题】:Relation between horizontal, vertical and diagonal Field-of-View水平、垂直和对角视场之间的关系
【发布时间】:2015-09-24 07:08:14
【问题描述】:

这些值之间是否存在数学关系?如果我知道 hFOV 和 vFOV,我可以在不涉及焦距等其他值的情况下计算对角 FOV 吗?

我的第一个想法是使用勾股定理,但可能是错误的。

【问题讨论】:

    标签: camera computer-vision video-capture fieldofview


    【解决方案1】:

    感兴趣的物理量是传感器尺寸和焦距。后者,在针孔相机模型中,是相机中心和图像平面之间的距离。因此,如果您用 f 表示焦距(以 mm 为单位),W 和 H 分别表示图像传感器的宽度和高度(以 mm 为单位),并假设焦轴与图像平面正交,通过简单的三角函数它是:

    FOV_Horizontal = 2 * atan(W/2/f) = 2 * atan2(W/2, f)  radians
    FOV_Vertical   = 2 * atan(H/2/f) = 2 * atan2(H/2, f)  radians
    FOV_Diagonal   = 2 * atan2(sqrt(W^2 + H^2)/2, f)    radians
    

    请注意,如果您有传感器尺寸和水平或垂直 fov,您可以求解 f 的前两个方程之一并将其代入第三个方程以获得对角 fov。

    当像往常一样通过相机校准估计焦距并以像素表示时,上述表达式需要进行一些调整。

    用 K 表示 3x3 相机矩阵,相机框架的原点位于相机中心(焦点),X 轴从左到右,Y 轴从上到下,Z 轴朝向场景。令 Wp 和 Hp 分别为图像的宽度和高度,以像素为单位。

    1. 在最简单的情况下,焦轴与图像平面正交 (K12 = 0),像素为正方形 (K11 = K22),主点位于图像中心 (K13 = Wp/2 ; K23 = Hp/2)。然后应用与上述相同的等式,将 W 替换为 Wp,将 H 替换为 Hp,将 f 替换为 K11。

    2. 与上面一样,还有一个更复杂的情况,但主点偏离中心。然后简单地添加每个 FOV 角度的两侧。所以,例如:

      FOV_Horizo​​ntal = atan2(Wp/2 - K13, K11) + atan2(Wp/2 + K13, K11)

    3. 如果像素不是正方形,则相同的表达式适用于 FOV_vertical,但使用 K22 和 Hp 等。对角线有点棘手,因为您需要将图像高度“转换”为与宽度相同的单位。为此使用“像素纵横比”PAR=K22/K11,这样:

      FOV_Diagonal = 2 * atan2(sqrt(Wp^2 + (Hp/PAR)^2) / 2, K11)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-07
      • 2018-02-11
      • 2018-04-01
      • 2012-10-10
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      相关资源
      最近更新 更多