Unclear branching and endpoint detection in vmtk-centerlines

Hi all,

I used the vmtk-centerlines module to auto-detect endpoints and then compute the centerline on my dataset. Using the centerline quantification data, I ran a script to add mark up points on each of the start and end position coordinates for centerline segments.

In the images attached below,
YELLOW= auto detected end-points
RED= Start position points
GREEN= End position points.

I do not understand how:

  1. A major chunk of the structure has no centerline segments detected
  2. The disparity between the auto detected endpoints and the centerline segment endpoints

Could someone help me out with this?

Thank you!




Network extraction algorithm computes simple geometric centerline. It can be used for any geometry.

Centerline extraction algorithm is for extracting a tree (or forest) topology from a graph. It computes the path on a Voronoi diagram according to flow direction. Centerline extraction method tends to require a bit larger diameter tubes (otherwise it fails to find a connecting path on the Voronoi diagram).

I would recommend reading Luca’s thesis for details.

Does my case fall into the “not large enough diameter cubes” ? I’m trying to construct correct centerlines for coronary arteries.
Errors in my case:


–First image shows weird straight lines while origin points are inside voronoi.
–Second image shows that whole tree does not get extracted for some reason. Also, the centerline model is incomplete and does not cover the centerline curves produced.

On the contrary, network extraction is (almost) flawless:

I have two questions:

  • What exactly is the difference between network and centerline models?
  • How exactly does endpoint placement works in these two cases? Because for network extraction I only need to place a point in the origin of my structure, while in centerline extraction I cannot figure out how to place them. Also, why centerline model does not cover exact same path as centerline curves?