计算水平fov、垂直fov与对角线fov之间的转换 您所在的位置:网站首页 矩阵对角线怎么算 计算水平fov、垂直fov与对角线fov之间的转换

计算水平fov、垂直fov与对角线fov之间的转换

2024-05-10 12:25| 来源: 网络整理| 查看: 265

或许,不会一点摄影知识的切图仔不是合格的前端。

FOV的定义

首先,什么是FOV?一句话概括:通俗来说,目标物体超过这个角就不会被收到镜头里。

FOV又称视场角,分为水平FOV(HFOV)、垂直FOV(VFOV)与对角线FOV(DFOV)。以下图片展示的是对角线与水平FOV。

FOV的计算

这次需要的镜头在官网介绍页提供的FOV仅有对角线FOV,而CesiumJS需要的是水平或垂直FOV。那么已知对角线FOV,如何计算水平或垂直FOV?也就是说这三者是如何换算呢?

图形更直观,所以来画一张图:

已知对角线FOV=84°

首先,有两点注意:

因为物理硬件的单位较难以计算,所以我们的计算建议以分辨率像素为单位。 FOV不是固定的,照片分辨率若发生变化,FOV也会随着发生变化。

其次,我们来看该镜头在设置不同照片比例进行拍摄时,经过实践获取拍出来的照片分辨率(即长和宽):

宽(w) 高(h) DFOV(计算得出) HFOV(计算得出) VFOV(计算得出) 3:2 5472 3648 84° 73° 53° 16:9 5472 3078 81° 73° 46° 4:3 4864 3648 79° 67° 53°

那么,我们以比例为 3:2 举例,开始今天的计算。

已知:dx = 3666(该镜头固定值),cx = 5472/2 = 2736, cy = 3648/2=1824,DFOV/2 = 84°/2=42°

根据勾股定理得出:

dy = Math.sqrt(Math.pow(2736, 2) + Math.pow(1824, 2)) ≈ 3288

DFOV

123Math.atan(dy / dx) * 2 * 180 / Math.PI= Math.atan(3288 / 3666) * 2 * 180 / Math.PI≈ 83.7° (与官网提供非常接近)

VFOV

123Math.atan(cy / dx) * 2 * 180 / Math.PI= Math.atan(1824 / 3666) * 2 * 180 / Math.PI≈ 53°

HFOV

123Math.atan(cx / dx) * 2 * 180 / Math.PI= Math.atan(2736 / 3666) * 2 * 180 / Math.PI≈ 73°


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有