Segmentation of objects in a point cloud (Python)

This is indeed a challenging problem. I’m not sure that you could do this in pure VTK… my approach would be:

  1. Use a pattern recognition algorithm to find and label the plots individually.
    • Possibly a convolutional neural network? … you would have to manually create a few labeled features. Shouldn’t be too cumbersome with this small of a dataset since the pattern is super uniform.
    • Once you have the plots segmented, label them uniquely by clustering.
  2. Find the highest/lowest Z values for each labeled plot

All of this can be done using Python and libraries like sci-kit learn and TensorFlow. I’d start with just the XYZ values of the plots and go from there.

Sorry I don’t have a more straightforward answer!