Skeletonizing a 3d voxel data
14 次查看(过去 30 天)
显示 更早的评论
I have voxel data in a csv file. It has 3 columns representing x,y,z coordinates and 9000 rows. After csv read and scatter3, I am able to visualize the 3d object in xy and z coordinates. the task at hand is to convert it into a binary image and skeletonize the 3D plot (3D object) and get the bracnhes and the end points of the skeleton. I am an amateur and so any suggestions would be helpful!
采纳的回答
Rik
2019-8-20
I generated some random points to show how your code should work. The attached function is an edited version of a FEX entry. This function doesn't require any toolbox. If you have the image processing toolbox, you can use bwskel instead.
L=false(20,15,30);
x=randi(size(L,1),1000,1);
y=randi(size(L,2),numel(x),1);
z=randi(size(L,3),numel(x),1);
ind=sub2ind(size(L),x,y,z);
L(ind)=true;
skel=Skeleton3D(L);
6 个评论
Rik
2019-8-28
The attached function is a slightly improved version of what I previously posted. Still not ready for the FEX, but you may find it usefull. This function returns the labeled tree. It should be possible to determine the children branches from this.
I have the feeling you're trying to use this for the same thing as I am: segmenting the bronchial tree.
I can't really help you with calculating the area and volume of segments, because that means you need to undo the skeletonization. For my goal it is enough to have the centerline, and I don't even need the generation number (apart from the trachea and the main bronchi), so for me this does the trick.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!