2012-11-21 17 views
5

Ho un'immagine di nuvola di punti 3d (vedi sotto).Eliminazione di punti ostruiti in una nuvola di punti

E vorrei raccogliere tutti i punti che sono teoricamente dietro altri punti (ad esempio, punti dietro il retro della persona non saranno visibili poiché è ostruito dai punti attorno al torace e all'addome).

Come posso risolvere questo problema?

Tutto ciò di cui ho bisogno sono solo punti che non sono ostruiti dalla vista frontale, in modo che io possa usarlo per altri scopi.

Modifica: Non è proprio per scopi di visualizzazione. Sto cercando di isolare solo i vertici non ostruiti per calcolare la superficie normale in un secondo momento al fine di estrarre le caratteristiche dell'immagine di profondità.

enter image description here

+0

Perché hai bisogno di una superficie normale per estrarre la profondità? – JAre

+0

Non estrae la profondità, ma usa la superficie normale come caratteristiche per l'immagine di profondità. È più una cosa di visione artificiale. Sto usando alcuni modelli OBJ per emulare temporaneamente i dati della nuvola di punti ottenuti da Kinect. E poiché si tratta di un sensore di profondità, solo la parte frontale dell'oggetto viene acquisita da Kinect –

+0

È possibile eseguire il rendering delle normali della mesh come colore del frammento (RGB) e della profondità come alfa alla trama e cercare punti casuali da esso o applicare la maschera che contians 1 e 0 e ombreggiatura mutliply su di esso in modo da ottenere texture con i punti anziché la superficie solida. – JAre

risposta

3

Non è possibile oscurare qualcosa con un punto: non ha dimensioni.

Se si dispone di una trama (cioè si sa quali punti "connettono" a cui) è possibile nascondere le cose che sono oscurate dietro quella rete.

Se non lo fai, il trucco più semplice che io conosca per ottenere qualcosa come il tuo requisito è quello di usare lo sbiadimento z - basta fare punti sul retro più debole.

+0

Se consideri una linea (raggio) tra il tuo punto di vista e un punto nel modello, non tutti i punti di quella linea saranno "oscurati" dal punto più vicino al modello di fotocamera? –

+0

@RuiMarques solo se sono _exactly_ on line, ma un punto ha dimensione zero, quindi non può davvero oscurare nulla. – Alnitak

+0

Certo, immagino che l'OP significhi punti oscurati da superfici definite da altri punti. –

1

ne dite di rendering poligonale con trama di punti? Un altro modo è il rendering della mesh poligonale su z-buffer (hai bisogno solo della profondità) e usarlo per scartare (punti lontani non riusciranno a z-test) i punti dietro alla mesh.