2012-10-31 42 views
5

我正在进行三维重建。现在,当我考虑一对图像。我有一组相应的点。我有我的相机细节。例如我有焦点细节,旋转和平移矩阵(4 * 4)。我想用三维(三角测量)投影我的点。所以就我而言,通过因子代数知道它非常简单。但我仍然需要清楚地了解它。有没有人有关于如何遵循这个想法?我正在努力matlab,所以我需要实现!我可能再次太宽泛或不管了。但请指导我!校准摄像机图像的三维重建

+0

仍然过于宽泛和模糊。我们在这里帮助,而不是教你整个过程或为你做所有的工作。 –

回答

0

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

然后,将相机矩阵与姿态矩阵相乘(4x4旋转你提到/ tranlation矩阵)来获取项目在您选择的三维坐标系统进入(相机的整流)像素坐标的点矩阵(总说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射线中:一个位于相机位置,另一个不是(最好选择单位深度或无穷远处的点)。你不能指望你的光线恰好相交,但你可以根据两条相应光线最接近的位置得到最合适的位置;更一般地说,您可以将任意数量的光线交叉处理为最小二乘问题(理想情况下,以每条光线预期的误差为条件)。