triangulatePoints()方法将4D坐标返回为(X,Y,Z,W)。实际对象坐标可以计算为(X / W,Y / W,Z / W)。我尝试绘制用W除法之前和之后通过此方法生成的点(棋盘边角)。有趣的是,点的正确位置只是不除以:
但是这些坐标不是真实的(相邻角之间的真实距离为1)
除后:
肯定是有问题
我认为这可能是由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个以上。哪里有错?