Trovare la linea centrale da una serie di punti 3D


21

Ho una serie di punti 3D. Seguono un modello curvo con un diametro piuttosto costante, come mostrato di seguito. Quale sarebbe l'algoritmo per tracciare la linea centrale approssimativa di questi punti?

Punti 3d


3 ° grado polinomiale, Excel?
FelixIP

Che tipo di strumenti stai usando o hai a disposizione? Matlab? Eccellere? R? Pitone?
Scott Newson,

@ScottNewson - sicuramente non Matlab. Sono aperto a qualsiasi linguaggio di programmazione.
Vinayan,

Questa domanda / risposta potrebbe aiutarti, /programming/29208554/calculate-centerline-in-3d-structure
Matt

Risposte:


7

C'è un documento chiamato "Ricostruzione curva da punti non organizzati" di In-Kwon Lee che analizza la costruzione di linee / curve da una serie di punti senza alcun ordinamento sfruttando il metodo dei minimi quadrati mobili . Sebbene si concentri su applicazioni 2D, menziona la possibilità di estenderlo a dimensioni più elevate. L'immagine seguente è tratta dal foglio:

Immagini tratte dal documento citato

Nel ' Capitolo 4 - Estensione 3D ', descrive come il metodo non può essere applicato direttamente a 3 dimensioni ma è possibile calcolare una curva di regressione quadratica 3D mediante:

  • Raggruppare i punti vicini usando il metodo dei minimi quadrati mobili
  • Calcolo di un piano di regressione K : z = A x + B y + C minimizzando un quadratico
  • Proiettando quei punti vicini sul piano K e risolvendo il problema dei minimi quadrati in movimento 2D.

Spero che sia di aiuto! (Piuttosto un documento interessante!)


1
@whuber - Grazie per il controllo. Ho modificato il mio post perché per coincidenza ho trovato un documento che potrebbe descrivere un possibile metodo.
Joseph,

2
Bella scoperta! EMST è una buona scelta su cui basare una soluzione. (+1) La procedura in quel documento potrebbe essere migliorata attraverso solidi metodi di livellamento come Loess o varie forme di adattamenti spline penalizzati.
whuber

3

Questa domanda ha già ricevuto risposta. Ecco la stessa domanda:

curva-montaggio-3d-data-set

Se stai cercando strumenti e codici pronti all'uso, ci sono molti metodi numerici per risolvere questo problema, come l'approccio avido che è implementato nei pacchetti R, scaricabile da GAM .

Se stai cercando algoritmi puri per implementarlo da solo, ti suggerisco di chiederlo nella comunità matematica ( http://math.stackexchange.com )

Inoltre questa pagina wiki è correlata alla tua domanda ( http://en.wikipedia.org/wiki/Curve_fitting )


-1

puoi fornire un esempio?
Nicks,

Cosa significa? Gli URL sono nella risposta.
Mr. Che

2
Odio sottovalutare le risposte, perché apprezzo sempre lo sforzo e la buona volontà che riflettono, ma sono infastidito di scoprire - dopo aver esaminato tutti e tre i riferimenti - che nessuno di loro risponde effettivamente alla domanda. Danzano attorno a semplici variazioni di esso, come ad esempio adattando una linea retta o un ellissoide ai punti.
whuber

2
Ho già trascorso una giornata sul primo link sperando che possa essere utile :)
Vinayan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.