3D point cloud shape classification

Hi,
I have a 3D scanner which gives me an output of a point cloud + normals. What I am trying to do is use openCV to find planes and shapes in the scan automatically. Is there any way to do so?

just curious, how does your 3d scanner work, and what are you trying to achieve here ?

there will be plane & sphere segmentation methods in the upcoming 5.x branch

and, ofc, pcl has a few more things here

The scanner is a hand scanner (SMART F6), which outputs a point cloud.
What I’m trying to achieve is to plan robotic paths to cover the different shapes and planes which comprise the scanned part. For example, a table with a cylinder above it (center of the cylinder is vertical to the table). The idea is to understand that there is a rectangle shape (the table) and a cylinder pointing upwards. The table can be covered by dividing up the area with a grid and connecting the grid cells to comprise a path. The cylinder can be divided up by slices according to some delta in the Z direction. I’m looking to do something like this?
Any ideas?

What I’m trying to do, for example is to get the same result as I got on the sides of the cube.
The colors represent surfaces found in the point cloud. The problem is that the cylinder is also a surface but it is represented by many surfaces.
I want to have the cylinder as one color, and also find the edges between the different surfaces as well as I did on the cube.
Thanks a lot!

Hello Ariel,
Did you found the answer to finding shapes in a 3D point cloud? I have a .ply point cloud file and I am trying to extract the shape and center of every shape from the point cloud. I would like to have your insights.

Hi Harshal,
So what we did at the end is develop a multi-shape RANSAC which takes the point cloud and searches for the biggest group of points which match either a plane, cylinder or a cone. Those are the shapes we need, but I’m sure that if you are able to geometrically define other shapes you can find them as well.
I wish you luck, and sorry I couldn’t be more helpful.

yeah, I will find a way around it definitely. I will look into RANSAC to cluster the points in a much better fashion.
Thank you for your help.