【问题标题】:Hole Detection Algorith孔洞检测算法
【发布时间】:2019-11-19 10:03:35
【问题描述】:

我有一组代表下水道的 3D 点。这些点是通过激光识别产生的。我想要实现的是给定这组点,检测下水道上的洞(下水道的一堵墙应该有一个洞)。一旦找到那个洞,就决定它是否干净(当洞几乎是圆形时,就说它是干净的(见下图)。

第一张图片从鸟瞰图表示下水道的一组点

第二张图片显示了侧视图,可以看到部分孔

最后,我附上一张图片,显示孔应该是怎样的(圆形或一侧或多侧不是圆形)

我想计算每对连续点的角度(它们产生的线的角度)。在这种情况下,我可以确定下水道的四壁并删除角落,因为它们无用。完成后,将每面墙的每一组点投影到一个平面上,并使用最大空圆算法。在孔壁中,它会检测到最大半径,因此我会知道孔在哪个壁中。

这只是一个想法,可能行不通。我真的很感激一些关于如何关注这个问题的想法,任何类型的信息都会非常有帮助。

我正在使用 Visual Studio 和 PCL,以防万一。

我不是在寻找一种算法来获得那些离其他点最远的点。我想要任何可以解决我的问题的解决方案。

谢谢你,亚历克斯。

【问题讨论】:

  • 你选择这个答案作为接受的解决方案:stackoverflow.com/questions/36062299/… 然后你继续重复这个问题。你的行为表现出不可预测的;没有人理解你的问题,也没有人会回答它
  • 这是两个不同的问题。第一个是找到离其余点集较远的点。这篇文章是关于 3D 空间中的孔洞检测。我知道这种方法可能看起来相同,但一篇文章比另一篇文章更笼统,它只是试图找到这些遥远的点。很抱歉给您带来不便,我是这个社区的新手。

标签: image-processing graphics geometry computational-geometry image-recognition


【解决方案1】:

看起来您正在直接使用点云。如果您首先对其进行三角测量以创建曲面,则可能会更容易。您可能需要先清理以删除异常值并进行一些本地过滤。然后,您可以很容易地计算边界 - 仅连接到一个三角形的边。这应该可以帮助您确定潜在的漏洞,因为这些漏洞将被边界边缘包围。

您可以通过计算圆度度量来检测“干净”的孔。例如,对于闭合曲线,您可以计算最大直径 D = 最远点对与区域 A 之间的距离 - 使用此 formula。那么 (pi D^2)/(4 A) 的比值应该接近 1。

【讨论】:

    猜你喜欢
    • 2019-08-31
    • 2018-11-19
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 2018-10-12
    • 2019-06-07
    相关资源
    最近更新 更多