per il tirocinio (io studio informatica) sto portando avanti un progetto con una professoressa.
Il progetto consiste nel ricostruire in 3D la struttura di superficie e la vascolarizzazione interna ed esterna di una tiroide umana a partire dalla scintigrafia.
Ora io ho gi? programmato il filtro di edge detection per rilevare i bordi della tiroide dalla scintigrafia.
Il risultato dell' applicazione del mio filtro ?, ad esempio, questo:
La linea rossa ? il bordo.
Ora devo fare il passo successivo, ossia approssimare il bordo tramite spline.
Per far questo devo campionare i punti e far passare per quei punti delle spline. Per campionarli pensavo di prendere per ogni riga (vedete l' immagine come una matrice di uno e zero) il pixel pi? esterno (ovviamente secondo un parametro di frequenza di campionamento) e fino qui tutto bene.
Poi per? devo riportare i punti campionati su un piano cartesiano.
E devo riportarli in modo che, dato l' asse di simmetria della figura, esso coincida con l' asse delle X del piano.
In questo modo ho mezza tiroide nel quadrante superiore destro e mezza nel quadrante inferiore destro.
Una cosa di questo tipo:
(lo so, l' asse mostrato qui non ? proprio preciso, ma l' ho fatto a mano e in fretta giusto per darvi una idea)
A questo punto trovo le spline, ho l' asse di simmetria e faccio ruotare le spline intorno all' asse di simmetria in modo da ricavare la superficie esterna dell' organo in 3D.
Il problema ?: come trovare questo asse di simmetria in maniera automatica a partire dalla prima immagine che ho messo in questa pagina?
Io pensavo di trovare i due punti pi? distanti tra di loro e di far passare l asse per quei due punti....ma anche per far questo non trovo un procedimento "astuto" per farlo (non vorrei prendere punto per punto e confrontarlo con TUTTi gli altri punti per trovare i due punti del bordo pi? distanti)...
Avete suggerimenti in merito?



