VMTK - Branch points coordinates


I am using the VMTK extension in Slicer 4.11.
It works really well; however, I would like to extract the branch point coordinates of the centerline model in a fast way.
I know this is possible by creating the centerline or network curves and reading the coordinates of the begin- or endpoint of these curves in the created table. However, my 3D model is pretty complex and it takes a lot of time to find the coordinates of certain branch points (for example, it is difficult to determine if the branch point I’m interested in is the begin- or end point of the curve).

Is it possible to get the branch points coordinates in a faster way? Ideally, I would click on a branch point and receive the coordinates of that point immediately.


Yes, it is very easy to extract point coordinates of a selected branch. Add a markups curve, place two points near the begin/end points of the path you want to extract and then in Markups module/Curve settings, choose Curve type -> Shortest distance on surface and select the centerline as model node as shown in this video:

You can get all curve point positions and the coordinates of first and last point in the Python console:

>>> a=slicer.util.arrayFromMarkupsCurvePoints(slicer.util.getNode('C'))
>>> a[0]
array([ 57.43868 , -31.754717,   0.      ], dtype=float32)
>>> a[-1]
array([-48.099056, -14.009434,   0.      ], dtype=float32)

Thank you! This is indeed a faster method. :grinning: