【问题标题】:Contour of 2d point clouds二维点云的轮廓
【发布时间】:2011-09-14 19:01:26
【问题描述】:

我在 2d 中散布了点云。我的问题是我想获得边界点来获得点云​​的轮廓。

我知道这个“行进广场”,但是这个算法通常用于 2d 中的像素。 有人知道如何从二维点云或“行进广场”算法的细节中获取轮廓吗?此外,凸包在我的情况下不起作用。

提前致谢。

【问题讨论】:

  • 我认为行进广场方法仍然是您最好的选择。 (如果我错了,请任何人纠正我)。您可以将 2d 点映射到“像素”值,从而更新该像素周围点的密度。因此,如果许多点靠近某个像素,则密度比顶部或附近只有一个时更高。从那里开始,您将继续前进广场。
  • 谢谢。你能解释一下将我的二维点映射到“像素”是什么意思吗?
  • 我在想一些类似于 3D 中的元球的东西(或者你可以看看 SPH 流体模拟的表面重建方法)。此链接主要包含我所暗示的内容:geisswerks.com/ryan/BLOBS/blobs.html 现在您当然会忽略 3D 和光线投射。像这样的东西适合你吗?另一个有趣的链接可能是:http.developer.nvidia.com/GPUGems3/gpugems3_ch07.html

标签: 3d 2d point-clouds geometry-surface marching-cubes


【解决方案1】:

我认为 2D“Alpha 形状”算法是您的正确选择。

http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Alpha_shapes_2/Chapter_main.html

Alpha 形状可以被视为“凸壳”算法的泛化,允许生成更一般的形状。

通过使用 alpha 形状,您可以通过更改 alpha 参数值来控制最终形状捕获的细节级别。

您可以在这里试用 java 小程序:http://cgm.cs.mcgill.ca/~godfried/teaching/projects97/belair/alpha.html

为了更好地理解这个算法的作用。

【讨论】:

    【解决方案2】:

    我建议使用Delaunay triangulation 作为基本算法,然后删除所有太大的三角形(从而将云分成组),然后删除多个三角形使用的所有边。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      • 2021-06-10
      • 2020-08-16
      相关资源
      最近更新 更多