OpenCVs triangulatePoints()之后的均匀4D向量归一化

时间:2015-07-10 15:38:56

标签: c++ opencv triangulation multiple-views structure-from-motion

我有两组相应的图像点和投影矩阵。 我使用OpenCVs triangulatePoints()函数(API | src code),同质3D点的结果是:

  points4D =
    [-0.25643614, -0.28791642, 0.55905539, 0.73403114;
     -0.1565057, -0.31044999, -0.93213254, 0.10127056;
     -0.059627295, -0.031433985, -0.93772811, 0.34076744;
     -0.29897481, -0.35055584, -0.88075489, 0.10952386;
      0.34366035, 0.22131357, -0.66281128, -0.62737477;
     -0.3073515, 0.079058781, -0.87456447, 0.36663577;
      0.18399428, -0.46038184, -0.85980427, -0.12219366;
      0.059319936, -0.27747059, -0.95542425, 0.081582561;
     -0.096490026, -0.21752475, 0.38856983, 0.89016074;
     -0.22918785, -0.27198601, 0.54019034, 0.76268667] 

由于三角测量使用SVD组合来计算解,因此将点(上述矩阵中的每一行代表4D点)归一化为单位矢量。由于均匀点定义为

P_homogeneous = [X Y Z 1]

我是否必须将所有计算点分别标准化为s.t.他们的最后一个条目是获得点的度量重建的单位?

1 个答案:

答案 0 :(得分:2)

如果您正在使用OpenCV,则可以使用define("css", "http://localhost/ibnm/css");