4

我得到了我的相机参数calibrateCamera(),现在我有了cameraMatrix、distCoeffs、rotationMatrix、transformMatrix。
使用这些矩阵,我可以构建投影矩阵并将空间中的 3D 对象点转换为 2D 图像点。
像这样的一些事情:

在此处输入图像描述

但我想要的是这个投影的反面。我想将这些 2D 点转换回 3D 空间。我知道我会丢失一些信息,但我所有的原始点都在同一个计划中。
请帮助我通过使用相机参数进行此转换来构建类似的矩阵。

4

1 回答 1

5

从一组投影的 2D 点中,您无法返回原始的 3D 点,而是连接 3D 点的光线及其在图像平面中的投影。所以,你失去了 3D 点的深度;也就是说,您知道方向,但不知道相机到 3D 点的距离。

您将必须弥补 3D 点的深度。它们的平面条件允许您对它们的相对位置进行一些限制,但仅检索它们的原始深度是不够的。

例如,您可以设置 3 个非共线点的深度以在 3D 空间中创建一个平面。其他 2D 点的深度将由这些射线与这个新平面的交点给出。

如果您知道起源于 3D 点的平面的法线向量,您可以通过设置单个 2D 点的深度并相应地计算其他点来做类似的事情。此外,只有当您拥有从该平面到原点(到相机)的距离时,您才能检索 3D 点的真实深度。

于 2013-10-30T11:05:22.753 回答