在3D空间中对点阵列的近似形状进行分类

时间:2012-03-27 12:51:01

标签: java 3d geometry

我在3d空间中有一组点,我希望能够对最适合它们的形状进行分类 - 立方体,球体,圆柱体,平面(平面)等。

我看过监督/机器学习,但因为我需要先生成一个不太合适的大型训练数据集。

我的梦想解决方案是一个具有奇妙功能的java库,如:

public enum ShapeType {
    CUBE,
    SPHERE,
    CYLINDER,
    PLANAR
}

public ShapeType CategorizeShapeFromPoints( 3DPoint[] points )

然而,任何和所有帮助将不胜感激。感谢

2 个答案:

答案 0 :(得分:0)

您可以尝试计算一些moments点云以表征其形式。 以下是2D案例

的相关paper示例

答案 1 :(得分:0)

答案取决于您对称性的定义。我用分子对称性做了很多这方面的工作。因此,正如@MBo所说,时刻是一个有用的开始,但只有在点均匀分布的情况下(如果在任何地方都有一个集中点,它会扭曲时刻分析。具有等间距点的地球和极点上的集合仍然是一个球体(因为它不是对称的)。

如果您担心某个点是否在另一侧有合作伙伴,那么您将不得不应用旋转和镜像。您提到的对象有明确定义的对称组。

您是否有表面(例如三角网或实心图)也很重要。我想,除非你有更明确的想法,否则没有人能给出明确的答案。