【发布时间】:2018-02-03 01:55:30
【问题描述】:
【问题讨论】:
【问题讨论】:
如果您知道平面(可以通过 PCA 确定),则可以将所有点投影到该平面中并继续使用 2D 坐标。因此,您的问题简化为在 2D 数据集中寻找边界点。
您的数据看起来好像是均匀采样的(每个轴独立)。然后,一个非常简单的检查可能就足够了:计算一个点的 - 比如说 30 个 - 最近邻居的质心。如果质心离原点很远,你很可能在边界上。
第二种方法可能是记录您有邻居的方向。 IE。为离散化方向保留一个位字段(例如,以 10° 为步长的角度,这将为您提供 36 个条目)。然后,对于每个邻居,计算其方向并将该方向(包括一些相邻方向)标记为已占用。例如。如果您的邻居在 27.4° 方向,您可以将方向位 1、2 和 3 标记为已占用。这个额外的周围空间将影响结果的细粒度。您可能还想让它取决于邻居的距离(即将邻居视为圆圈并找到圆圈所跨越的角度范围)。最后,检查是否所有方向都被占用。如果没有,你就在边界上。
Alpha 形状可以为您提供内部和外部边界。
【讨论】:
通过将点投影到您的平面上转换为 2D
查看相关的QA处理此问题:
在二维点集中寻找洞
只需应用这个相关的QA:
项目发现漏洞回到 3D
再次查看#1中的链接
抱歉,几乎只有链接的答案,但展位链接在 SO/SE 上,并且在结合时可以完全解决您的问题。我首先努力将您的问题标记为重复并将其留在评论中,但这更具可读性。
【讨论】: