VMTK centreline and metrics

This is a feature request concerning VMTK centerline and its metrics.


The below image shows a sigle centerline of a pathological artery. It is not clear where is located the measured radius.

I wish the table data gives the minimum and the maximum radius too, between the two enpoints. At best, a graph of the measured radius at every millimeter would be helpful.


The image below shows a cross-section of a normal artery, where the radius is the same in every direction. In the pathological artery, the lumen morphology varies considerably.

I wish that we can click on any point of the centreline, and get the minimum and maximum radius at the chosen point in some way. At best, a plane perpendicular to the centreline could be drawn in the segment, and remains visible with its metrics shown in the view, or in a separate table.


We usually care of vessel diameter, not radius. The conversion is straightforward, but has yet to be done. An additional column showing diameters would be welcome.

Hoping that these requests get considered.

Best regards.

I pushed a module that plots average diameters of a CMTK centerline. It’s templated over LineProfile module.

Comments of Slicer’s gurus are welcome.


The module looks nice! It could be added to SlicerVMTK extension.

I would just recommend to fix/improve two things:

  1. The distance computation along the centerline. Currently, you project the centerline to a selected axis, but instead we should use distance along centerline. This distance should be fairly easy to compute (sum of Euclidean distances between points), but I am sure it can be already computed by VMTK (as far as I understand, this is called the “abscissa” and computed by filters like vmtkBranchMetrics).

  2. Use the latest scripted module template in Extension Wizard module in latest Slicer Preview Release (that is downloaded July 1, 2020 or later), as it is greatly improved. Most importantly, the GUI is created in Qt Designer instead of manual scripting.

Once these are addressed, it would be great if you could submit a pull request to SlicerVMTK extension that adds this new module.

True; would be closer to interventional reality. I’ll have a closer look as to what VMTK offers… within my technical limits. Thanks for the hints.

This has just been adressed, any of the RAS axis can be selected.

Does it mean ‘do rewrite the GUI’ ?

It means that you don’t need any code for creating the GUI, but use QtDesigner. It allows you to create your user interface by drag-and-dropping widgets and setting its properties.


But there’s only a QVTKWidget if system VTK is installed, not the like of qMRMLNodeComboBox.

To see all the Slicer and CTK widgets, launch Qt designer by clicking on “Edit UI” button in the module’s “Reload & Test section”.

I get ‘designer-real missing’ message. This is home built Slicer, and designer-real is missing in the SuperBuild tree. This file does exist in factory packages. What config switch do I have to use to get it built ? Thanks.

Qt designer can be launched correctly in the build tree on Windows, but maybe there are issues on Linux or Mac. You can also try launching it using ./Slicer --designer. It would be great if you could investigate the issue and maybe even come up with a fix.

In the meantime, you can download and use an official Slicer build to run Qt Designer.

I’m using as a workaround :

./Slicer --launch konsole
"# In the new terminal

Then I have all CTK, VTK, MRML widgets.

Will investigate when possible. First, I’ll rebase the module on a .ui file.

I updated the GUI part of the module on Qt Designer. If you deem it worthwhile, I’ll delve into the pull request.

Not exactly what I thought of but quite near, this module can move a 2D view perpendicular to a centerline. What puzzles me is the amount of rotation in the 2D view when the path is convoluted. We won’t have these rotations with Curve Planar Reformat.

Just saying, might be useful.

N.B : it has nothing to do with metrics.