VMTK Extract Centerline for imperfectly segmented blood vessel

Slicer version: 5.2.2
System: MacOS Monterey Version 12.4

Hello all,

I have been trying to use the ‘Extract Centerline’ module from the VMTK toolkit in 3D Slicer to extract the centerline of a region of segmented blood vessels. However, as the segmented mask is not perfect, I have been struggling to extract the complete centerlines.

Here is what I did: after loading the original segmented mask, I created a surface model for it and performed moderate smoothing. The semi-transparent object in yellow in all screenshots attached below shows the surface model. I then switched to the ‘Extract Centerline’ module, manually labelled a list of endpoints, and ran the algorithm to extract centerline model and curves (the centerline model is shown as the green curve in centerline_model_1/2.png), and network model and curves (network curves are shown in various colors in network_curves_1/2.png).

As you can see in the screenshots, the problems with my segmentation mask include disjoint segments of one small vessel, holes in the large vessel, and rough vessel surface, etc. These perhaps imposed many difficulties in the subsequent centerline extraction. Examining the current results from ‘Extract Centerline’, I have the following questions:

  1. The extracted centerline model did find the desired centerline for the horizontal large vessel at the top, but I wonder why it missed all of the small vessels going downwards?
  2. Could anyone help explain the difference between the centerline model/curves and the network model/curves, or point me to some documentation?
  3. The network curves does capture the centerline of some small vessels, but it is unable to find the centerline in the disjoint segment. Do people have any suggestions on how one may recover a continuous centerline from disjoint regions in an imperfect segmentation mask that should belong to the same vessel?
  4. The network curves in the large vessel seem to be much more susceptible to holes and peaks in the segmentation mask, thus not quite following the desired centerline that I want to extract. Could anyone help explain why this is the case?

Any help would be much appreciated!




Generally speaking, supersampling the images before segmentation may help, e.g. with CropVolume. Or, if you are most interested in the centerlines you could just paint in your expectation of the connection between the vessel parts based on your knowledge of the anatomy (e.g. they are connected in reality but the images just don’t show it well).

1 Like