计算水平fov、垂直fov与对角线fov之间的转换 | 您所在的位置:网站首页 › 矩阵对角线怎么算 › 计算水平fov、垂直fov与对角线fov之间的转换 |
或许,不会一点摄影知识的切图仔不是合格的前端。 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 实验室设备网 版权所有 |