triangulatePoints()方法给出错误的3D坐标

时间:2019-08-02 08:53:56

标签: opencv computer-vision triangulation

triangulatePoints()方法将4D坐标返回为(X,Y,Z,W)。实际对象坐标可以计算为(X / W,Y / W,Z / W)。我尝试绘制用W除法之前和之后通过此方法生成的点(棋盘边角)。有趣的是,点的正确位置只是不除以:

without dividing by W

但是这些坐标不是真实的(相邻角之间的真实距离为1)

除后:

after divinding

肯定是有问题

我认为这可能是由W的奇怪值引起的。

[ 1.42646418e-03  1.22798549e-03  1.02968386e-03  8.39846092e-04
   6.36201818e-04  4.52465261e-04  2.69547454e-04  8.46875409e-05
  -9.68981258e-05  1.40832004e-03  1.21079874e-03  1.01654453e-03
   8.17881722e-04  6.27299945e-04  4.34311369e-04  2.59211694e-04
   8.54686004e-05 -8.65304610e-05  1.40546728e-03  1.20577158e-03
   1.01246696e-03  8.14260624e-04  6.32434676e-04  4.47672734e-04
   2.72056146e-04  9.63734783e-05 -8.87211063e-05  1.40579767e-03
   1.20654306e-03  1.01806328e-03  8.29431403e-04  6.48407149e-04
   4.67954233e-04  2.88052834e-04  1.05378487e-04 -8.11762657e-05
   1.42593682e-03  1.23078423e-03  1.04424497e-03  8.57530802e-04
   6.73743780e-04  4.87769896e-04  3.05575493e-04  1.14500137e-04
  -7.35641006e-05  1.46166584e-03  1.27260783e-03  1.07531622e-03
   8.86362221e-04  6.96056406e-04  5.09601785e-04  3.19138955e-04
   1.36194620e-04 -5.99504456e-05]

我认为这些值应该几乎相同,但是相差2个以上。哪里有错?

0 个答案:

没有答案