如何防止平面在 xz 和 yz 轴上的平面拟合?

How to prevent plane fitting of plane on xz and yz axes?

我有这个代码:

SACSegmentation<PointXYZ> seg;
seg.setAxis(Vector3f(0, 0, 1));
seg.setEpsAngle(0.5 * M_PI / 180.0);
seg.setModelType(SACMODEL_PLANE);
seg.setMethodType(SAC_RANSAC);
seg.setDistanceThreshold(0.2);
// then set the input cloud and filter..

axis 和 epsAngle 似乎什么都不做——当传感器离它们足够近以至于墙上的点比地面上的点多时,点云仍然会拾取墙壁。我从 xyz 点数据显式构建点云,因此 PointCloud 成员变量如 sensor_origin_ 和 sensor_orientation_ 可能未设置(除非 PointCloud 将它们默认为某些东西)。这可能是我问题的根源吗?还是我做错了什么?

我在这个问题上看到的其他帖子都建议设置 eps 角度,我已经在这样做了。感谢您的帮助!

我仔细研究了 PCL 文档并找到了答案。他们在文档中没有说得很清楚,但只有部分模型受 setAxis() 和 setEpsAngle() 的影响。对于我的应用程序,该模型是 SACMODEL_PARALLEL_PLANE。您可以在这里找到其他人:http://docs.pointclouds.org/1.7.0/group__sample__consensus.html.