从校准的相机图像的3d重建

时间:2012-10-31 13:57:46

标签: 3d computer-vision triangulation 3d-reconstruction

我正在进行三维重建。现在,当我考虑一对图像。我有一套相应的要点。我有我的相机细节。例如,我有焦点细节,旋转和平移矩阵(4 * 4)。我想在3D(三角测量)中投射我的观点。因此,只要我通过因子代数就知道它非常简单。但我仍然需要清楚地理解它。有没有人知道如何遵循这个?我正在使用matlab,所以我需要实现它!我可能再次过于宽泛或其他什么。但请指导我!

1 个答案:

答案 0 :(得分:0)

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

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

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光线中:一个位于摄影机位置,另一个不是(最佳选择单位深度或无限远点)。您不能指望您的光线完全相交,但您可以根据两条相应光线最接近的位置获得最佳位置;更一般地说,您可以将任意数量的光线的交点视为最小二乘问题(理想情况下,以每条光线预期的误差为条件)。