I’m working on a project involving fitting planes to 3D point clouds. The actual plane fitting part is working fine, but I’m trying to decide the best way to actually bound the fitted planes by the data points they are fit to. I need bounded regions of the planes, not just their equations, so I have to decide which points in the dataset “belong” to which plane after the fitting process. The planes are oriented more or less randomly, and can intersect, which complicates things.

It’s easier to picture in 2D with lines instead of planes, so I made two example plots. The first has the raw data in blue. I can find the equations of the lines that match the linear clusters of data. Given these equations, I want to end up with the distinguished clusters in the second plot. I've got something working using a running variance calculation and taking all the points that are below some threshold, but it's not ideal and I know there has got to be a much better way to do it. My gut tells me I need an algorithm that considers the geometry of the clusters beyond just the distance from each point to the plane. Taking all the points within some threshold distance from each plane is problematic for a number of reasons, so I'm looking for something better than that.

Any ideas?Raw dataAssigned data


1 Answer 1


One option is a two step process:

  1. Fit spectral clustering to find the groups. Since spectral clustering is graph based, it is good at finding connected groups.

  2. For each cluster, individually estimated the bounded regions of the planes. This is often called convex hull.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.