Encontrar la línea central de un conjunto de puntos 3D

21

Tengo un conjunto de puntos 3D. Siguen un patrón curvo con un diámetro bastante constante como se muestra a continuación. ¿Cuál sería el algoritmo para rastrear la línea central aproximada de estos puntos?

Puntos 3d

vinayan
fuente
Polinomio 3er grado, Excel?
FelixIP
¿Qué tipo de herramientas estás usando o tienes disponibles? Matlab? ¿Sobresalir? R? ¿Pitón?
Scott Newson
@ScottNewson: definitivamente no es Matlab. Estoy abierto a cualquier lenguaje de programación.
vinayan
Esta pregunta / respuesta podría ayudarlo, /programming/29208554/calculate-centerline-in-3d-structure
Matt

Respuestas:

7

Hay un documento llamado "Reconstrucción curvada a partir de puntos no organizados" por In-Kwon Lee que analiza la construcción de líneas / curvas a partir de un conjunto de puntos sin ningún orden mediante la explotación del método de mínimos cuadrados en movimiento . Aunque se centra en aplicaciones 2D, menciona la posibilidad de extender esto a dimensiones más altas. La siguiente imagen está tomada del documento:

Imágenes tomadas de papel mencionado

En el ' Capítulo 4 - Extensión 3D ', describe cómo el método no puede aplicarse directamente a 3 dimensiones, pero es posible calcular una curva de regresión cuadrática 3D de la siguiente manera:

  • Agrupando puntos vecinos usando el método de mínimos cuadrados en movimiento
  • Calcular un plano de regresión K : z = A x + B y + C minimizando una cuadrática
  • Proyectando esos puntos vecinos al plano K y resolviendo el problema de mínimos cuadrados en movimiento 2D.

¡Espero que esto ayude! (¡Un artículo bastante interesante!)

Joseph
fuente
1
@whuber - Gracias por revisar. Edité mi publicación ya que casualmente encontré un artículo que puede describir un posible método.
Joseph
2
Buen hallazgo! El EMST es una buena opción sobre la cual basar una solución. (+1) El procedimiento en ese documento podría mejorarse mediante métodos de suavizado robustos como Loess o varias formas de ajustes de spline penalizados.
whuber
3

Esta pregunta ya ha sido respondida. Aquí está la misma pregunta:

conjunto de datos de ajuste de curva 3d

Si está buscando herramientas y códigos listos para usar, existen muchos métodos numéricos para resolver este problema, como el enfoque codicioso que se implementa en paquetes R, descargables desde GAM .

Si está buscando algoritmos puros para implementarlo usted mismo, le sugiero que lo solicite en la comunidad matemática ( http://math.stackexchange.com )

Además, esta página wiki está relacionada con su pregunta ( http://en.wikipedia.org/wiki/Curve_fitting )

Farid Cheraghi
fuente
-1

EDITAR: Bueno, parece que es una respuesta incorrecta, ¡la línea de ajuste es recta! =)

Señor che
fuente
¿Puede dar un ejemplo?
nickves
¿Qué significa? Las URL están en la respuesta.
Sr. Che
2
Odio rechazar las respuestas, porque siempre aprecio el esfuerzo y la buena voluntad que reflejan, pero me molesta descubrir, después de mirar las tres referencias, que ninguno de ellos responde realmente la pregunta. Bailan alrededor de variaciones simples, como ajustar una línea recta o un elipsoide a los puntos.
whuber
2
ya pasé un día en el primer enlace esperando que pudiera ser útil :)
vinayan