世界坐标,相机坐标与像素坐标

发布时间 2023-07-03 16:30:54作者: 诗外

相机模型中的4个坐标系及其关系

世界坐标系 相机坐标系 像素坐标系

计算 3D 点的 2D 坐标

本小节我们将介绍点的世界坐标系坐标是如何转化到它们在图像中的像素坐标的位置的。

世界坐标系和世界空间

当场景中的一个点被首次定义,我们称它的坐标在世界空间中被指定:该点的坐标是相对于全球或世界直角坐标系描述的。世界坐标系的原点成为世界原点,在世界空间中定义的任何点的坐标都是相对于该原点(坐标为[0, 0, 0]的点)描述的。点在世界空间中的表示如 Fig.4 所示。
Fig 4. 点在世界空间中的表示

4×4 矩阵作为直角坐标系的可视化

3维空间中的转换可以通过3种操作来完成:平移、旋转和放缩。这3种操作的任意组合都是线性变换,都可以用一个 4×4 矩阵来表示。记住,沿对角线的前 3 个系数编码放缩比例(矩阵中的c00,c11c22),最后一行的前 3 个值编码平移(c30,c31,c32--假设你是用行主序惯例),3×3左上角内矩阵编码旋转(红 绿 蓝 系数)。
matrix

总之,一个4x4矩阵代表一个坐标系(或者,反过来说,一个4x4矩阵可以代表任何笛卡尔坐标系)。你必须始终把4x4矩阵看作是一个坐标系而已,反之亦然(我们有时也会说 "本地 "坐标系是关于 "全球 "坐标系的,在我们的例子中,就是世界坐标系)。我们总是可以知道事物相对于世界坐标系的位置。不过,为了简化计算,用局部坐标系来定义事物往往是很方便的(我们将通过一个例子进一步说明这一点)。这就是 "本地 "坐标系的用途。

将点从一个坐标系转化到另一个坐标系

不同的坐标,同一个点

假设我们知道将一个坐标系A转换为一个坐标系B的4x4矩阵M。在这种情况下,如果我们用M的逆来转换一个坐标最初定义为相对于B的点(接下来我们将解释为什么我们使用M的逆而不是M),我们将得到点P相对于A的坐标。

相机坐标系和相机空间

相机所在的局部坐标系
场景中的点是在世界坐标空间中定义的。然而,为了将它们投射到画布的表面,我们首先需要将三维点的坐标从世界空间转换到摄像机空间。这可以通过将点的世界坐标乘以相机到世界矩阵的逆值来完成。

我们现在可以通过使用透视投影方程(用点的Z坐标的倒数除以点的坐标),在相机空间中使用所得到的点来计算它在画布上的2D坐标。