Cluster pixels in Binary Image from 2D-Histogram Data

4 views (last 30 days)
What I am trying to achieve is to decompose a stl-model into sub-volumes based on the corresponding surface normals (or check if this is somehow possible or can be combined with other methods).
First I created a 2D-Histogram in Matlab based on the orientation of surface normals of a STL-File (Figure A, attached PNG).
For further processing I then transformed the Histogram data to a binary image. Now I am trying to cluster the binary data to achieve clusters like in figure C.
But best I can do for now is creating clusters based on the direct connectivity of the pixels (figure B) and I can't think of an approach to achieve this.
Maybe someone could give me a hint or algorithm to achieve the results like seen in figure C?
Thanks in advance!

Answers (1)

Ameer Hamza
Ameer Hamza on 18 Nov 2020
You can use regionprops(): https://www.mathworks.com/help/images/ref/regionprops.html to get each white region in your image. Then you will need to check the difference between x and y coordinates of region-centers to get the type of clustering you want.
  1 Comment
Timo Schmid
Timo Schmid on 23 Nov 2020
I managed to cluster another histogram using DBScan-Function (delivered the best results) which you can see on the right (attached picture). For the right histogram it works fine.
But I can't manage to cluster along x/y direction in the left one because of the intersections... Any ideas on how to approach this?

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!