surface_matching中的pose_result

大家好,最近在学习仿真PPF算法,通过配置opencv-contrib,然后调用sample里面的surface-matcing实例代码,仿真实现surface matching的结果。再配置PCL库对结果进行验证观察。

采用的场景为:opencv43\opencv_contrib-4.3.0\modules\surface_matching\samples\data\rs1_normals.ply

采用的模型为:opencv43\opencv_contrib-4.3.0\modules\surface_matching\samples\data\parasaurolophus_6700.ply

跑出来的结果如下:

img


可以看到有result0和result1,我用result0对模型点云进行旋转平移后无法与场景点云匹配。反而是用result1能够匹配上。如图所示:

img

​按我的理解,在投票匹配的过程中,选取分数最高的组的所有姿态的均值作为最终的结果,就因该是pose0才对,为什么反而是pose1对了呢?希望得到大家的解答,解决我的困惑。