04-29-2016 04:18 PM
Challenge:
In my application I end up with small clusters of 3D point clouds representing small objects of arbitrary shape. I have been able to use an implementation of the DBSCAN algorithm to seperate my little point cloud blobs into distinct groupings.
Now I would like to draw a 3D shell around these groupings so they can be displayed clearly on a 3D plot, with their shape obvious.
I am able to use the native LabVIEW 3D picture functions to draw plot the point clouds, but I cannot see a good tool within LabVIEW to create a complete 3D surface. A 3D convex hull feature would also be useful in this application.
Something liek this would be nice:
In the example code I have attached I can switch between drawing points, lines and triangles but that's not good enough to draw the outline of the 3D shape by itself.
I have tried to look at PCL and VTK but it looks like implementation of those in LabVIEW would be non-trivial. I can also use MATLAB, but the processing time associated with the brute force methods I have found so far is pretty long.
Note: my point cloud represents the full 3D volume of the object, not just the surface. DBSCAN can return whether a point is in the the middle of the object or on the edge so this feature could be used to feed into logic for drawing a polygonal surface.
04-30-2016 05:17 PM
Well, LabVIEW has at least two Convex Hull routines. One, "Convex Hull", is in the Computation Geometry sub-Palette (look inside the Mathematics Palette). This seems to be a 2D routine, as it has X and Y inputs, but maybe you can cleverly "extend" it to 3D. Another Convex Hull routine is in the Vision (IMAQ) Palette, designed for gathering a collection of Pixels into an Object. However, this is also (almost surely) a 2D routine.
You probably already know about these, but if not, they may give you some hints and places to start.
Bob Schor