Here are two small modules that combine the different usual steps to segment small portions of arteries on CT angioscans, with an ultimate goal of extracting centerlines. They do not target ‘head to toe’ segmentations.
They are definitely useful to me as time saving tools, and I present them here under the assumption that they might be useful to others. However, if this post is perceived as dead noise, please apologize in advance.
Both of them remote control the ‘Segment editor’ modules and the ‘Extract centerline’ modules. Internally, API calls are made as much as possible, else, UI gestures are simulated. The latter part may be seen as a ‘macro style’ approach.
Fiducial centerline extraction
This module uses fiducial points as input, placed inside the arterial lumen. An ROI must be used to limit segmentation to a targeted small region. Each fiducial point will be an endpoint in the ‘Extract centerline’ module.
It is suitable for common regions dealt with in vascular surgery (aorto-iliac bifurcation, carotid bifurcation, visceral arteries with the aorta…), with ‘goodly sized’ arteries. The resulting segmentation is usually of good quality and centerline extraction succeeds readily. This module is not that much time consuming.
This one uses a markups open curve as input, to produce a single tube as output. Each control point must be placed in the lumen, else the resulting segmentation will be a malformed time consuming lump.
It targets otherwise difficult to segment vessels, with poor contrast or very small or surrounded by veins with excessive contrast. In practice, I’ve seen it so far quite efficient for diseased small vessels like distal visceral arteries, or subclavians that are surrounded by many bones. Segmenting left anterior descending and right coronary arteries have produced good results too. Even with the greater saphenous vein, when there is sufficient contrast in it in CT angioscans studying arteries.
Control point placement is determining. A few points can be placed in a ‘Volume rendering’ 3D view, or in slice views, followed by curve resampling. Next, each point must be checked to lie in the lumen. This is yet time consuming.
The first and last points will be endpoints to ‘Extract centerline’ module, and are not used for segmentation. It is therefore helpful that the second control point be reasonably close to the first point, and that the before last one be close to the last point.
The resulting segmentation mush be checked in slice views, so that is not excessive, overlapping on calcifications, or insufficient.
Centerline extraction may often fail however. In such cases, smoothing with ‘Fill holes’ at minimal kernel size helps to create centerlines (smoothing is faster using the 3D brush). After smoothing, work should be continued directly in ‘Extract centerline’ module obviously. It is recommended to save work done before extracting centerlines, because this may crash Slicer on poor quality segments.
Whether with the segmentation step or with extracting centerlines, post-procesing is often needed here.
This module might perhaps be more suitable for research work. Its targeted approach by point placement is probably its main interest.
In the hope that they might be useful to others.
Regards.