Modules:VMTKCenterlines
Return to Slicer 3.6 Documentation
Module Name
VMTKCenterlines, part of the collection
General Information
Module Type & Category
Type: Scripted Module
Category: Segmentation, Extension
Authors, Collaborators & Contact
- Author: Daniel Haehn, University of Heidelberg
- Acknowledgments: Luca Antiga, Mario Negri Institute; Steve Pieper, Isomics Inc.
- Contact: Daniel Haehn, haehn@bwh.harvard.edu
Module Description
This module provides level-set segmentation in 3D Slicer using selected methods of the level-set segmentation process of the Vascular Modeling Toolkit (http://www.vmtk.org). The module targets easy-to-use manual segmentation of tubular and blob-like structures. The methods provided by this module are Fast Marching Upwind Gradient Initialization and Geodesic Active Contours and CURVES Evolution.
Segmentation using level sets consists of an initialization and an evolution step. The initialization step involves the description of a starting model within a region of interest. In the evolution step this initial deformable model then gets inflated to match the contours of the targeted volume.
This work is part of the NA-MIC VMTK Collaboration.
Official project page: http://www.vmtk.org/Main/VmtkIn3DSlicer
Usage
Installation
This module depends on the VmtkSlicerModule: see this page for installation notes.
The VMTKCenterlines module can be installed using the 3D Slicer extension wizard. The extension is called VMTKCenterlines.
When the module was successfully installed, it is available within 3D Slicer's module selector inside the category Vascular Modeling Toolkit.
Examples, Use Cases
Tutorials
The following tutorials demonstrate the use of VMTKCenterlines in a pipeline of VMTK modules to extract the centerlines of coronary arteries.
Quick Tour of Features and Use
The graphical user interface of the VMTKEasyLevelSetSegmentation module consists of four panels.
- Main module panel:
Parameter presets exist for different use-cases. These get loaded from the MRML file presets.xml inside the module directory and can be edited. The current parameters are stored to the MRML node of the module and therefore it is possible to work with different parameter sets.
- I/O panel:
The input volume and the output volumes for the initialization and evolution stage can be selected using this panel. The output volume of the initialization stage is used as an input for the evolution stage. Fiducial lists can be configured as source and target seeds. If the selected fiducial lists are equal, target seeds will be ignored. This is useful for the segmentation of vessel trees. A switch to choose between 3D visualization using models generated by Marching Cubes or Volume Rendering is available.
- Initialization panel:
The threshold slider is used as a parameter for the Fast Marching Upwind Gradient Image Filter and updates the slice viewers during change for visualization.
- Evolution panel:
The module supports to choose between Geodesic Active Contours and CURVES evolution methods using a checkbox.
Different weights are available to configure the inflation of the initial level-set. Is is possible to adjust the importance of inflation, curvature shape and attraction to the gradient ridges. The number of iterations defines how many steps of evolution are performed.
Development
Notes from the Developer(s)
The algorithms provided by VMTK and used by this module are C++ classes implemented using VTK and ITK. In particular the module uses the Fast Marching Upwind Gradient Image Filter (see http://math.berkeley.edu/~sethian/Explanations/fast_marching_explain.html) for initialization and the Geodesic Active Contours (see http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.21.2196&rep=rep1&type=pdf) and CURVES (see http://www.spl.harvard.edu/publications/item/view/179) level set filters for evolution.
Dependencies
This module depends on the VMTK libraries which are provided in the VmtkSlicerModule. Therefore the VmtkSlicerModule has to be installed before the VMTKEasyLevelSetSegmentation module can be used.
Known bugs & Usability issues
Follow this link to the VMTK in 3D Slicer bug tracker.
Source code & documentation
VMTKEasyLevelSetSegmentation is a Python Scripted Module. It follows the conventions of the Model View Controller pattern of slicer modules. This implies the separation of logic and GUI.
The class VMTKEasyLevelSetSegmentationGUI derives from ScriptedModuleGUI and saves the current parameters to its own MRML node. The actual calls to the VMTK libraries as well as the Marching Cubes or Volume Rendering methods are performed in the class VMTKEasyLevelSetSegmentationLogic. Several general supporting functions are outsourced in the class VMTKEasyLevelSetSegmentationHelper.
The complete source code is available at a NITRC SVN repository.
More Information
Acknowledgment
This work was funded by a grant of the Thomas-Gessmann Foundation part of the Founder Federation for German Science.
References
- Antiga L, Piccinelli M, Botti L, Ene-Iordache B, Remuzzi A and Steinman DA. An image-based modeling framework for patient-specific computational hemodynamics. Medical and Biological Engineering and Computing, 46: 1097-1112, Nov 2008.
- D. Hähn. Integration of the vascular modeling toolkit in 3d slicer. SPL, 04 2009. Available online at http://www.spl.harvard.edu/publications/item/view/1728.
- D. Hähn. Centerline Extraction of Coronary Arteries in 3D Slicer using VMTK based Tools. Master's Thesis. Department of Medical Informatics, University of Heidelberg, Germany. Feb 2010.
- Piccinelli M, Veneziani A, Steinman DA, Remuzzi A, Antiga L (2009) A framework for geometric analysis of vascular structures: applications to cerebral aneurysms. IEEE Trans Med Imaging. In press.