5

我正在研究 3d 重建。现在当我考虑一对图像时。我有一组对应的点。我有我的相机详细信息。例如我有焦点细节,旋转和平移矩阵(4 * 4)。我想以 3D(三角测量)投影我的观点。因此,据我所知,它通过因子代数非常简单。但我还是要理解清楚。有谁知道如何遵循这个?我正在使用matlab,所以我需要实现它!我可能又太宽泛了或其他什么。但是请指导我!

4

1 回答 1

0

您需要根据已知的相机属性计算相机矩阵;这是一个缩放投影矩阵,将 3D 均匀点映射到 2D 像素坐标上。(请注意,如果您想要获得不错的准确度,您还需要测量并系统地纠正相机的镜头失真,但这是次要的细节。)

然后,将您的相机矩阵与您的姿势矩阵(您提到的 4x4 旋转/平移矩阵)相乘,得到一个矩阵(比如说T总),将您选择的 3D 坐标系中的一个点投影到相机的(校正)像素坐标中:

pixel vector Q.x  =  T * point P.x
             Q.y               P.y
             Q.z               P.z 
             Q.w                1

pixel coordinates  =  (Q.x/Q.w, Q.y/Q.w)
"pixel depth" = Q.z/Q.w

您可以反转此矩阵,并通过选择两个深度使用它将像素坐标投影到 3D 射线中:一个在相机位置,另一个不在相机位置(最好选择单位深度或无穷远点)。你不能指望你的光线完全相交,但你可以根据两条对应的光线最近的位置来获得一个最合适的位置;更一般地,您可以将任意数量的光线的交集视为最小二乘问题(理想情况下,以每条光线的预期误差为条件)。

于 2012-10-31T20:41:25.380 回答