【问题标题】:CGAL 4.10 Point Set Shape Detection: preventing detection of spurious planes on curved surfacesCGAL 4.10 点集形状检测:防止检测曲面上的虚假平面
【发布时间】:2017-07-13 06:34:22
【问题描述】:

我正在使用 CGAL 点集形状检测来查找点云中的平面。该方法在检测模型中的平面方面做得很好,但它也检测到许多虚假平面,这些虚假平面实际上并不是模型的一部分。例如。我的模型有一个长管道,该算法检测到几个沿管道长度运行的平面,与管道表面相切。我想避免这种情况的唯一方法是对 epsilon 和/或 normal_threshold 使用较小的值。我已经为 epsilon 和 normal_threshold 使用了非常小的值(目前分别为 1.0 和 0.35)。

这是一个常见问题吗?还有其他方法可以避免吗?

【问题讨论】:

    标签: 3d cgal


    【解决方案1】:

    这是算法的预期行为:如果您有一个足够长的圆柱体,以便算法可以切向地拟合一个平面,并且有足够多的点低于公差,那么它就可以被检测到。检测到的平面内部没有厚度或伸长率的概念。

    如果您增加最小点数或减少公差,您可能会摆脱这些形状,但代价是失去您可能感兴趣的其他形状。

    我的建议是过滤掉这些你不想要的平面(例如,你可以用CGAL::linear_least_squares_fitting_3() 识别主成分向量并估计检测到的形状的厚度,如果太小则删除) .

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 2016-10-11
      • 2020-09-26
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      • 2013-04-01
      相关资源
      最近更新 更多