Нахождение линии центра из набора 3D точек


21

У меня есть набор 3D очков. Они следуют изогнутой схеме с довольно постоянным диаметром, как показано ниже. По какому алгоритму можно проследить приблизительную осевую линию этих точек?

3d очки


Полином 3-й степени, Excel?
FelixIP

Какие инструменты вы используете или у вас есть в наличии? Matlab? Excel? Р? Python?
Скотт Ньюсон

@ScottNewson - определенно не Matlab. Я открыт для любого языка программирования.
Винаян

Этот вопрос / ответ может помочь вам, /programming/29208554/calculate-centerline-in-3d-structure
Мэтт

Ответы:


7

Есть статья In-Kwon Lee под названием «Изогнутая реконструкция из неорганизованных точек» , которая рассматривает построение линий / кривых из набора точек без какого-либо упорядочения, используя метод движущихся наименьших квадратов . Хотя он ориентирован на 2D-приложения, он упоминает о возможности его расширения до более высоких измерений. Следующее изображение взято из бумаги:

Изображения взяты из упомянутой статьи

В « Главе 4 - 3D-расширение » описывается, как метод не может быть применен непосредственно к 3 измерениям, но можно вычислить кривую трехмерной квадратичной регрессии следующим образом:

  • Группировка соседних точек методом подвижных наименьших квадратов
  • Вычисление плоскости регрессии K : z = A x + B y + C путем минимизации квадратичной
  • Проецирование этих соседних точек на плоскость K и решение двумерной задачи о наименьших квадратах.

Надеюсь это поможет! (Довольно интересная статья!)


1
@whuber - Спасибо за проверку. Я отредактировал свой пост, так как случайно нашел статью, которая может описать возможный метод.
Джозеф

2
Хорошая находка! EMST - хороший выбор, на котором можно основывать решение. (+1) Процедура в этой статье может быть улучшена с помощью надежных методов сглаживания, таких как Лесс или различных форм штрафных сплайнов.
whuber

3

На этот вопрос уже был дан ответ. Вот тот же вопрос:

Кривая облегать-3d-данных набор

Если вы ищете готовые к использованию инструменты и коды, есть много численных методов для решения этой проблемы, например, жадный подход, который реализован в R-пакетах, загружаемых из GAM .

Если вы ищете чистые алгоритмы для его реализации самостоятельно, я предлагаю вам спросить об этом в математическом сообществе ( http://math.stackexchange.com )

Кроме того, эта вики-страница связана с вашим вопросом ( http://en.wikipedia.org/wiki/Curve_fitting )


-1

Можете ли вы привести пример?
nickves

Что значит? URL есть в ответе.
Мистер Че

2
Я ненавижу занижать ответы, потому что я всегда ценю усилия и доброжелательность, которые они отражают, но я раздражен, обнаружив - после просмотра всех трех ссылок - что ни один из них на самом деле не отвечает на вопрос. Они танцуют вокруг простых вариаций этого, таких как подгонка прямой или эллипсоида к точкам.
whuber

2
я уже потратил день на первую ссылку, надеясь, что это может быть полезно :)
vinayan
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.