How to find clusters in binary 3D image?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Sepp
el 10 de Jul. de 2015
Comentada: Image Analyst
el 16 de Jul. de 2015
Hello
I have a binary 3D image, i.e. it contains only 0 and 1. Now I want to find all clusters of 1s (i.e. clusters of voxels containing only value 1). Finally for each cluster I should know the coordinates of the voxels belonging to that cluster.
How can this be done? Of course I can iterate over all voxels but the difficulty is to detect the clusters and extract all voxels inside the cluster.
0 comentarios
Respuesta aceptada
Image Analyst
el 10 de Jul. de 2015
Use bwlabeln() or bwconncomp(). If you really need the (x,y,z) coordinates of each voxel in a labeled blob, then you can call regionprops() and ask for PixelIdxList.
2 comentarios
Image Analyst
el 16 de Jul. de 2015
You've made probably the most common mistake novice users make : confusing x and y with row and column. Remember, all matrices in MATLAB are indexed by row and column, NOT by x and y. So it's M(row, column) = M(y,x), and NOT M(x,y) because x is not the row - it's the column.
PixelList returns a x,y,z vector. You have a matrix that you say is 60x90x10 which I assume is rows by columns by slices. So the max of x is 90, the max of y is 60, and the max of Z is 10. So a coordinate of (x,y,z) = (61,15,4) is well within the range of your matrix bounds of (90,60,10).
Más respuestas (0)
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!