Recherche de la ligne centrale à partir d'un ensemble de points 3D

21

J'ai un ensemble de points 3D. Ils suivent un motif incurvé avec un diamètre plutôt constant comme indiqué ci-dessous. Quel serait l'algorithme pour tracer la ligne médiane approximative de ces points?

Points 3D

vinayan
la source
Polynôme 3ème degré, Excel?
FelixIP
Quel type d'outils utilisez-vous ou avez-vous à votre disposition? Matlab? Exceller? R? Python?
Scott Newson
@ScottNewson - certainement pas Matlab. Je suis ouvert à tout langage de programmation.
vinayan
Cette question / réponse pourrait vous aider, /programming/29208554/calculate-centerline-in-3d-structure
Matt

Réponses:

7

Il existe un article intitulé "Reconstruction courbe à partir de points non organisés" par In-Kwon Lee qui examine la construction de lignes / courbes à partir d'un ensemble de points sans aucun ordre en exploitant la méthode des moindres carrés mobiles . Bien qu'il se concentre sur les applications 2D, il mentionne la possibilité de l'étendre à des dimensions plus élevées. L'image suivante est tirée du papier:

Images prises à partir du papier mentionné

Dans le ' Chapitre 4 - Extension 3D ', il décrit comment la méthode ne peut pas être appliquée directement à 3 dimensions mais il est possible de calculer une courbe de régression quadratique 3D en:

  • Regroupement de points voisins à l'aide de la méthode des moindres carrés mobiles
  • Calcul d'un plan de régression K : z = A x + B y + C en minimisant un quadratique
  • Projeter ces points voisins sur le plan K et résoudre le problème des moindres carrés en mouvement 2D.

J'espère que cela t'aides! (Un article assez intéressant!)

Joseph
la source
1
@whuber - Merci d'avoir vérifié. J'ai édité mon article car j'ai trouvé par hasard un article qui pourrait décrire une méthode possible.
Joseph
2
Belle trouvaille! L'EMST est un bon choix sur lequel baser une solution. (+1) La procédure dans ce document pourrait être améliorée par des méthodes de lissage robustes telles que Loess ou diverses formes d'ajustements de cannelures pénalisés.
whuber
3

Cette question a déjà été répondue. Voici la même question:

courbe-ajustement-3d-ensemble de données

Si vous recherchez des outils et des codes prêts à l'emploi, il existe de nombreuses méthodes numériques pour résoudre ce problème, comme l'approche gourmande implémentée dans les packages R, téléchargeable depuis GAM .

Si vous recherchez des algorithmes purs pour l'implémenter vous-même, je vous suggère de le demander à la communauté mathématique ( http://math.stackexchange.com )

De plus, cette page wiki est liée à votre question ( http://en.wikipedia.org/wiki/Curve_fitting )

Farid Cheraghi
la source
-1

EDIT: Eh bien, il semble que ce soit une mauvaise réponse, la ligne d'ajustement est droite! =)

M. Che
la source
Pouvez vous donner un exemple?
nickves
Qu'est ce que tu veux dire? Les URL sont dans la réponse.
M. Che
2
Je déteste dévaloriser les réponses, car j'apprécie toujours l'effort et la bonne volonté qu'elles reflètent, mais je suis ennuyé de découvrir - après avoir regardé les trois références - qu'aucune d'entre elles ne répond réellement à la question. Ils dansent autour de variations simples de celui-ci, comme l'ajustement d'une ligne droite ou d'un ellipsoïde aux points.
whuber
2
j'ai déjà passé une journée sur le premier lien en espérant que ça pourrait être utile :)
vinayan