动作结构:实现三角测量

时间:2014-07-04 09:45:01

标签: algorithm 3d computer-vision graph-algorithm

使用情况:


给定已知(模拟)的3D场景,并且:

  1. 相应2D点V,V'的2个向量,其中V'表示3D点的投影,包括相对变换(使用5点算法提取)。
  2. 相机内在矩阵'K'
  3. 相对相机旋转矩阵'R'
  4. 相对相机翻译't'(最高比例)
  5. 计算三角形3D点位置(最大比例) 实现:

    1. 对于每个相机,使用
      提取从相机投射出的光线并通过3D点 [RayV] = [Vx,Vy,0] * K.inv()
      [RayV'] = [V'x,V'y,0] * K.inv()
    2. 将相对旋转添加到[RayV'](影响光线方向)
      [RayV'] = [RayV'] * [R]
    3. 形成两条光线的三维线方程 L = [0,0,0] + [RayV](第一条光线与原点0,0,0相交)
      L'= [t] + [RayV'](添加相对摄像机翻译)
    4. 根据以下内容找到空间中最小化两条光线之间距离的点: https://www.youtube.com/watch?v=HC5YikQxwZA


    5. 问题:


      衍生的相机光线在Z坐标中偏离很多,而X,Y偏差最小,产生的三角形点与其生成的场景不对应。

      我在这里做错了什么?是上述数学是否正确?是Ray计算和Ray公式推导是否正确?

1 个答案:

答案 0 :(得分:1)

要从2D点创建齐次坐标,必须将光线计算中的0替换为1.