Ho una domanda molto bella & per voi. Ho bisogno di allineare due mesh usando un algoritmo molto veloce. Dato mesh1 e mesh2 voglio scoprire come devo ruotare e ruotare mesh1 per essere nella stessa posizione di mesh2. Inizialmente l'ho fatto usando i momenti di inerzia delle due mesh, ma l'algoritmo non funziona se la seconda mesh è simile alla prima ma con alcune parti mancanti. In altre parole, prendi due maglie identiche e da una di esse taglia le stesse parti.come allineare due mesh
Mi piacerebbe scrivere il codice in C perché ho bisogno di eseguirlo su macchine multipiattaforma (linux/win) e farlo in un modo molto veloce: deve essere inserito in un algoritmo GA.
Le due mesh sono in formato STL (stereolitografia) (binario o ascii) ma forse possono essere utili utilizzando un altro tipo di formato di file.
Avete qualche idea su come eseguire questa roba?
aggiornamento domanda:
prima di tutto voglio ringraziare voi ragazzi molto per tutti i vostri suggerimenti. Ho scaricato un PCL di installazione sul mio computer e ho compilato con successo l'algoritmo ICP (tutorial), tratto dal sito Web PCL. Ma ora ho alcune domande a riguardo, forse perché per me è una cosa nuova di zecca. qual è il significato dell'output di matrice 4x4 per il fitness? Dovrei aspettarmi una matrice rotazionale e un vettore traslazionale ..
Spero che qualcuno di voi possa aiutarmi. Se avete bisogno di altre informazioni si prega di chiedere.
Quindi, in pratica, si desidera un algoritmo che calcoli la trasformatrice che trasforma mesh1 il più vicino possibile su mesh2? Inoltre: l'unico modo in cui la mesh viene modificata è la rimozione di parti o i vertici possono essere spostati e aggiunti? – Nobody
@Nobody Sto calcolando la matrice di trasformazione confrontando i momenti di inerzia dei due corpi, ma qualsiasi altra cosa che mette mesh1 su mesh2 è ok. In conclusione, ho bisogno di trovare la posizione più vicina di mesh1 rispetto a mesh2 che fornisce il valore di distanza minimo tra i due. – Nicholas
Per chi (come me) si imbatte in questo molto più tardi, è utile notare che ICP è più efficace quando la correlazione è alta e la differenza è bassa perché ICP tende a stabilirsi in soluzioni impropri se deve spostare una nuvola/mesh troppo lontano per arrivare a quello giusto. Questo è il motivo per cui in genere viene eseguita una sorta di fase di corrispondenza delle feature approssimativa, per ottenere la trasformazione nelle giuste vicinanze. Da quel momento, ICP è eccellente per perfezionare la registrazione. – Matt