使用Hololens 2将相机投影到空间地图上



我正试图将记录的图像(对颜色进行一些修改(投影到Hololens 2设备门户的3D视图生成的空间图上。我用相应的CameraToWorld矩阵和投影矩阵记录了图像

例如

Projection Matrix:
[1.53862 0.00000 0.00729 0.00000],
[0.00000 2.73525 -0.05193 0.00000],
[0.00000 0.00000 -1.00000 0.00000],
[0.00000 0.00000 -1.00000 0.00000]
CameraToWorld Matrix:
[0.99903 0.03822 -0.02210 0.01095],
[-0.03472 0.98934 0.14145 0.10689],
[-0.02727 0.14054 -0.98970 0.16761],
[0.00000 0.00000 0.00000 1.00000]

)

当我获取CameraToWorld矩阵并将其应用于PCL纹理重映射时,我发现图像被投影到对面并倒置。因此,我添加了一个180度的x轴旋转。

我得到了以下结果,位置不在正确的位置

红色方块应该是监视器的正确位置

我有以下问题

  1. 为什么存在旋转偏移?将CameraToWorld矩阵应用于PCL纹理映射功能的正确方法是什么?

  2. 我没有使用投影矩阵,在投影过程中我遗漏了什么吗?

您在python项目中使用trimesh吗?如果是这样,场景的坐标系应该是左手坐标系,空间映射的坐标系是右手坐标系,因此会有旋转偏移。要获得空间映射的正确位置,需要将矩阵转换为相应的左手坐标矩阵。

投影矩阵是为从世界坐标到相机坐标的转换而设计的。如果你想将纹理添加到3D模型中,你不必使用它。

最新更新