Категоризировать примерную форму массива точек в 3D пространстве - PullRequest
2 голосов
/ 27 марта 2012

У меня есть набор точек в трехмерном пространстве, и я хочу иметь возможность классифицировать форму, которая наилучшим образом соответствует им - куб, сфера, цилиндр, плоская (плоская) и т. Д.

Я смотрел наконтролируемое / машинное обучение, но так как мне сначала нужно сгенерировать большой набор обучающих данных, который не очень подходит.

Моим решением для мечты была бы библиотека java с замечательной магической функцией, например:

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

public ShapeType CategorizeShapeFromPoints( 3DPoint[] points )

Тем не менее, любая помощь будет оценена.Спасибо

Ответы [ 2 ]

0 голосов
/ 27 марта 2012

Ответ будет зависеть от вашего определения симметрии.Я делаю это с молекулярной симметрией.Таким образом, как говорит @MBo, моменты - это полезное начало, но только если точки распределены равномерно (если концентрация где-либо будет искажать анализ моментов. Будет ли глобус с равноотстоящими точками и набор на полюсе все ещесфера (потому что она не будет симметричной).

Если вас интересует, есть ли у точки партнер на другой стороне, вам придется применять повороты и зеркала. Дляобъекты, которые вы упоминаете.

Также будет иметь большое значение то, есть ли у вас поверхность (например, триангулированная сетка или сплошная фигура). Я думаю, что пока у вас нет более ясного представления, никто не может дать однозначный ответ.

0 голосов
/ 27 марта 2012

Вы можете попытаться вычислить несколько моментов облака точек, чтобы охарактеризовать его форму.Вот пример соответствующей бумаги для 2D-кейса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...