Geometry 将最大凸包拟合到一组点的内部

Geometry 将最大凸包拟合到一组点的内部,geometry,curve-fitting,convex-hull,Geometry,Curve Fitting,Convex Hull,我想找到一个最大的凸包,它适合于一组点的内部。我有一组大致呈圆形的点,在我想拟合的圆之外有大量的异常点。想象一个有“太阳耀斑”的圆圈。。。我想适应这个圆圈,完全忽略光斑。我尝试过各种适合和挑选策略,但效果不好 我找了很多,但没有找到解决办法。提前感谢。您需要的概念可能是alpha形状。凸包是alpha极值的alpha形状的子集。alpha形状拟合一组比凸面外壳更接近的点,带有一些alpha值 这一理论是由Edelbrunner提出的。这是一个良好的开端: 对于计算,必须:计算delaunay三角

我想找到一个最大的凸包,它适合于一组点的内部。我有一组大致呈圆形的点,在我想拟合的圆之外有大量的异常点。想象一个有“太阳耀斑”的圆圈。。。我想适应这个圆圈,完全忽略光斑。我尝试过各种适合和挑选策略,但效果不好


我找了很多,但没有找到解决办法。提前感谢。

您需要的概念可能是alpha形状。凸包是alpha极值的alpha形状的子集。alpha形状拟合一组比凸面外壳更接近的点,带有一些alpha值

这一理论是由Edelbrunner提出的。这是一个良好的开端:

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

alpha形状示例:


这实际上是一个凹面外壳,它可以忽略异常值

这不完全是我想要的,但我能够使用这个策略来获得足够接近我需要的东西。非常感谢你引导我朝这个方向前进。我发现下面的网站对于理解alpha形状非常有价值——Java小程序向您展示了如何非常好地工作。你能发布一两个点的样本吗?你可能想看看。这至少可以将您限制在最相关的边缘。如果你回答了上面的问题,我可能会将其扩展为一个答案。我已经发布了一个供参考的帖子-它与我描述的不完全一样,但足够相似。我最终没有使用alpha形状,因为点之间的连接取决于选择的alpha。alpha太小可能无法闭合形状。alpha太大将排除有效点。我最后做的是用一个环形掩模乘以,镜像环的外边缘上的点,拟合一个凸面外壳,然后再次镜像环的凸面外壳,从而掩盖了我不想要的数据。这是我能想到的最糟糕的情况。我可能会建议一种不同的方法,但除非我遗漏了什么,否则听起来我的方法不会更有效(O(N logn))。而且,它可能没有给出你想要的东西。这就是说,你可能想考虑你自己的问题,对你的方法进行更详细的解释,因为它可能对其他人有益。