7

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?

Karl
  • 837
  • 1
  • 9
  • 13

1 Answers1

4

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.

bjoernz
  • 836
  • 5
  • 10