【问题标题】:Point cloud line searching algorithms点云线搜索算法
【发布时间】:2020-09-26 12:54:44
【问题描述】:

我正在使用 2D 点云,我想找到它遵循的形状,并确定它是否是一个闭环。你不得不原谅我糟糕的油漆插图,但基本上我希望能够从黑点画出红线,并确认它是否关闭。我目前正在研究 RANSAC 等方法,但它们似乎都适合与我面临的任务略有不同的任务。我将在 C++ 中实现该解决方案。

有没有人知道一个好的方法/算法来计算红线,给定黑点,并确定它是否关闭?

【问题讨论】:

  • 问题不清楚。您告诉我们您想做什么,但您没有提供有问题的代码实现示例,您的帖子中甚至没有问题。你只是在陈述你想做什么。
  • 我已经编辑让问题更清晰
  • 如果分叉怎么办?可以吗?我为您提供了一个非常简单的算法,但我不知道它是否符合您的实际需要:1. 在每个点周围,在黑暗中绘制距离 X 内的所有内容,2. 使用 BFS 等算法,检查有多少大组件你有(其中一个大组件有 Y 像素),如果答案是两个,你很好。 (创建人工边界以排除从一侧到另一侧的线。)
  • 我会看看我能用它做什么 - 谢谢

标签: c++ algorithm point-clouds


【解决方案1】:

我的建议是:

  1. 对点集进行三角剖分。
  2. 找到通过所有线路的短路径,基本上是旅行商问题。贪心算法可能足以满足此目的。
  3. 使用线条简化算法“整理”线条(RDP 算法效果很好)。
  4. 考虑任何大于 X 乘以点之间的平均距离(从第 2 步开始)的值,基本上将数据中的异常值作为间隙来确定是打开还是关闭。

请记住,第 3 步和第 4 步是高度固执己见的。它们都要求你定义你认为“足够好”的东西,并且需要一些实验来设置最佳值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多