【问题标题】:Fit maximum convex hull to interior of a set of points将最大凸包拟合到一组点的内部
【发布时间】:2013-04-25 19:18:37
【问题描述】:

我想找到适合一组点内部的最大凸包。我有一组大致为圆形的点,在我想拟合的圆圈之外有大量异常点。想象一个带有“太阳耀斑”的圆圈......我想适应这个圆圈并完全忽略耀斑。我尝试了各种拟合和剔除策略,但效果不佳。

我搜索了很多,但没有找到解决方案。提前致谢。

【问题讨论】:

  • 你能发布一两个点的示例吗?
  • 您可能想查看Gabriel graph。那至少应该能够将您限制在最相关的边缘。如果您回答上述问题,我可能可以将其扩展为答案。
  • 我已经发布了image 以供参考 - 它与我描述的不完全一样,但足够相似。我最终没有使用 alpha 形状,因为点之间的连接取决于选择的 alpha。太小的 alpha 可能不会关闭形状。太大的 alpha 将排除有效点。我最终做的是通过乘以环形掩码来屏蔽我不想要的数据,镜像环外边缘的点,拟合凸包,然后再次围绕环形环镜像该凸包。完美运行。
  • 啊,这是我能想到的最糟糕的情况。我会建议一种不同的方法,但除非我错过了什么,否则听起来我的效率不会更高(O(N log N))。此外,它可能没有给出你想要的东西。也就是说,您可能需要考虑通过更详细地解释您的方法来回答您自己的问题,因为这可能对其他人有益。

标签: geometry curve-fitting convex-hull


【解决方案1】:

您需要的概念可能是 alpha 形状。凸包是 alpha 形状的子集,用于 alpha 的极值。 alpha 形状正在拟合一组比凸包更接近的点,并具有一些 alpha 值。

理论由 Edelbrunner 开发。这是一个好的开始:http://www.mpi-inf.mpg.de/~jgiesen/tch/sem06/Celikik.pdf

对于计算,您必须:计算 delaunay 三角剖分和/或 voronoi 图,然后选择观察一个条件的点。

示例 alpha 形状:

这实际上是一个凹壳,它可能会忽略异常值。

【讨论】:

  • 不完全是我想要的,但我能够使用这种策略来获得足够接近我需要的东西。非常感谢您引导我朝这个方向发展。我发现以下网站对于理解 alpha 形状确实非常宝贵——Java 小程序向您展示了它是如何很好地工作的。 cgm.cs.mcgill.ca/~godfried/teaching/projects97/belair/…
猜你喜欢
  • 2021-10-23
  • 2019-06-11
  • 2012-06-22
  • 2015-05-24
  • 2017-02-24
  • 1970-01-01
  • 2017-05-22
  • 2011-05-01
  • 1970-01-01
相关资源
最近更新 更多