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

19

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 trazar la línea central aproximada de estos puntos?

    
pregunta vinayan 15.03.2015 - 07:25

4 respuestas

6

Hay un documento llamado "Reconstrucción curvada de Puntos no organizados " de In-Kwon Lee, que busca construir líneas / curvas a partir de un conjunto de puntos sin ningún orden al explotar el 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 papel:

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

  • Agrupar puntos vecinos utilizando el método de mínimos cuadrados móviles
  • Cálculo de un plano de regresión K : z = A x + B y + C al minimizar una cuadrática
  • Proyectando esos puntos vecinos para planear K y resolviendo el problema de los mínimos cuadrados móviles en 2D.

Espero que esto ayude! (¡Un papel bastante interesante!)

    
respondido por el Joseph 20.03.2015 - 12:46
3

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

conjunto de datos de ajuste de curva en 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 los paquetes R, descargable desde GAM .

Si está buscando algoritmos puros para implementarlo usted mismo, le sugiero que lo pregunte en la comunidad matemática ( enlace )

Además, esta página wiki está relacionada con su pregunta ( enlace )

    
respondido por el Farid Cheraghi 18.03.2015 - 12:44
2

Estamos buscando una curva en el espacio 3D, por lo que queremos algún tipo de ecuación paramétrica:

x = f(t)
y = g(t)
z = h(t)

Según la imagen proporcionada, queremos que las funciones f, g y h sean polinomiales de tercer o cuarto orden (es decir, el exponente más grande es 3 o 4). En general, cuanto mayor sea el grado, más preciso será el ajuste, pero más tardará en calcularse.

Para una solución de tercer orden, necesita encontrar números para las variables 'A' a 'L' en estas ecuaciones:

x = A*t^3 + B*t^2 + C*t + D
y = E*t^3 + F*t^2 + G*t + H
z = I*t^3 + J*t^2 + K*t + L

Puede usar Excel y el complemento Solver para encontrar las variables 'A' a 'L' modificando el tutorial aquí: enlace

Necesitará tener cuatro columnas: t, x, y y z. ('t' solo puede ser un número entero creciente a partir de 1.)

Y deberá ingresar tres ecuaciones, y espacio para las variables 'A' a 'L':

x = A*t^3 + B*t^2 + C*t + D
y = E*t^3 + F*t^2 + G*t + H
z = I*t^3 + J*t^2 + K*t + L

Luego, ejecute Excel Solver un par de veces (lo encontré a veces tomé un par de iteraciones antes de establecer una solución), esto le dará las variables de sus ecuaciones paramétricas para describir la línea de mejor ajuste a través de sus datos. .

    
respondido por el Scott Newson 19.03.2015 - 20:36

Lea otras preguntas en las etiquetas