I have a 3D volume image that consists of 2D tomographic images. In MatLab, for 2D images, we can use bwmorph and call for 'skel' operation to infinity to get a pixel thick overall outline of the image. bwmorph cannot deal with 3D images, however, so I am looking around for implementing "skel" operation for such tomographic case.

I see that MatLab has provided an explanation for thinning algorithm (in 2D) but not skeleton algorithm. They are pretty much similar, but I just want to ask the community first: if I want to implement an algorithm for "skeletonize" all voxels of a volume (the end result should be all objects in the volume becoming 1 voxel thin. Ex. A 3D cylinder becomes a 3D line, a 10 voxels thick in diameter spline should become a 1 voxel thick in diameter spline, etc.), what are some of the things should I be looking for?


1 Answer 1


As a start, you could look at the distance transform. The distance transform will assign each voxel the minimal distance to the volume boundary. Afterwards you could do a non-maximum suppression. The results should look similar to a skeleton.

I bet there are more sophisticated algorithms available for 3d skeleton extraction, but this is not my field of research, so I cannot help you with that.


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.