21 votos

Encontrar el Centro de la Línea a partir de un conjunto de Puntos 3D

Tengo un conjunto de puntos 3D. Siguen un patrón de curva con un diámetro constante, como se muestra a continuación. ¿Cuál sería el algoritmo de seguimiento aproximadamente el centro de la línea de estos puntos?

3d Points

7voto

Mue Puntos 2469

Hay un papel que se llama "Curva de la Reconstrucción de los no organizados Puntos" por En-Kwon Lee, que se ve en la construcción de líneas/curvas a partir de un conjunto de puntos sin ningún tipo de orden por la explotación de la mudanza de mínimos cuadrados método. Aunque focues en 2D aplicaciones, se menciona la posibilidad de ampliar este a dimensiones superiores. La siguiente imagen es tomada de la ponencia:

Images taken from mentioned-paper

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

  • La agrupación de vecinos puntos con el movimiento método de mínimos cuadrados
  • El cálculo de una regresión plano K : z = ax + By + C mediante la minimización de una ecuación cuadrática
  • La proyección de los puntos vecinos de plano K y la solución de los 2D en movimiento de mínimos cuadrados problema.

Espero que esto ayude! (Muy interesante papel!)

3voto

Farid Cher Puntos 5306

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

de ajuste de curva-3d-conjunto de datos

Si usted está buscando listo para usar herramientas y códigos, hay muchos métodos numéricos para resolver este problema, como codiciosos enfoque que se aplica en paquetes de R, downloadble de GAM.

Si usted está buscando para el más puro de los algoritmos a aplicar a ti mismo, te sugiero preguntar en matemáticas de la comunidad (http://math.stackexchange.com)

Además esta página de la wiki está relacionado con tu pregunta (http://en.wikipedia.org/wiki/Curve_fitting)

2voto

bene Puntos 4294

Estamos buscando a 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)

Basado en la imagen de siempre, queremos que las funciones f, g y h polinomio de tercer o cuarto orden (es decir, el mayor exponente es 3 o 4). En general, cuanto mayor es el grado más preciso será el ajuste será, pero tomará más tiempo para calcular.

Una tercera solución de orden, usted necesita encontrar los números para las variables 'a' a la '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' - 'L" al modificar el tutorial aquí: http://sharpstatistics.co.uk/excel/non-linear-curve-fitting-in-exce/

Usted tendrá que tener cuatro columnas: t, x, y, y z. ('t' puede ser un aumento de números enteros a partir de 1.)

Y usted tendrá que introducir tres ecuaciones, y el espacio para las variables '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

A continuación, ejecutar el Solver de Excel de un par de veces (lo he encontrado, a veces, tomó un par de iteraciones antes de que se asentó en una solución), esto le dará las variables de las ecuaciones paramétricas para describir la línea de mejor ajuste a través de sus datos.

-1voto

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X