Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Culling obstructed points in a point cloud

I have a 3d point cloud image (see below).

And I would like to cull all the points which are theoretically behind other points (e.g points around the back of the person will not be visible since it's obstructed by the points around the chest and abdomen).

How do I go and solve this problem ?

All I need are just points which are not obstructed from frontal view, so that I can use it to for other purposes.

Edit: It's not really for viewing purposes. I am trying to isolate only the unobstructed vertices to calculate surface normal later on in order to extract depth image features.

enter image description here

like image 771
sub_o Avatar asked Oct 06 '22 22:10

sub_o


2 Answers

You can't obscure something with a point - it has no dimensions.

If you have a mesh (i.e. you know which points "connect" to which) you can hide things that are obscured behind that mesh.

If you don't, the easiest trick I know of to achieve something like your requirement is to use z-related fading - just make points at the rear fainter.

like image 73
Alnitak Avatar answered Oct 10 '22 04:10

Alnitak


How about rendering polygonal mesh with texture of points? Another way is rendering polygonal mesh to z-buffer(you need only depth) and using it to discard(far points will fail z-test) points that are behind mesh.

like image 36
JAre Avatar answered Oct 10 '22 04:10

JAre