Difference between revisions of "Modules:VMTKVesselEnhancement"

From Slicer Wiki
Jump to: navigation, search
Line 96: Line 96:
  
 
===Known bugs & Usability issues===
 
===Known bugs & Usability issues===
 +
 +
'''Fix when you installed old versions of the module and it does not work or the buttons on the interface look strange:'''
 +
Manually delete lib/Slicer3/Modules/@SVN@/VMTK* or where ever the extensions were installed (replace @SVN@ with the revision of your Slicer installation).
  
 
Follow this [http://www.nitrc.org/tracker/?func=browse&group_id=196&atid=821 link] to the VMTK in 3D Slicer bug tracker.
 
Follow this [http://www.nitrc.org/tracker/?func=browse&group_id=196&atid=821 link] to the VMTK in 3D Slicer bug tracker.

Revision as of 18:28, 16 August 2009

Home < Modules:VMTKVesselEnhancement

Return to Slicer 3.4 Documentation

Gallery of New Features


Module Name

VMTKVesselEnhancement

Main GUI
Vessel Enhancement on a cardiac blood-pool MRI
Vessels of an arm highlighted

General Information

Module Type & Category

Type: Scripted Module

Category: Filtering, 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 the vessel enhancement filters of the Vascular Modeling Toolkit (http://www.vmtk.org) in 3D Slicer. These filters target the highlighting of line-like, plate-like and blob-like structures.

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 VMTKVesselEnhancement module can be installed as a 3D Slicer Extension or manually.

  • Installation as a 3D Slicer Extension

Inside the 3D Slicer extension system, the module is called VMTKVesselEnhancement.

  • Manual Installation

1. To get the latest source code, perform the following SVN checkout command:

svn checkout https://www.nitrc.org/svn/slicervmtklvlst

2. A directory named VMTKVesselEnhancement is downloaded.

3. Copy this directory to Slicer3-build/lib/Slicer3/Modules/ of your local Slicer installation.


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 screencasts/tutorials show different Use Cases of the VMTKVesselEnhancement module. It is always used as a pre-processing step and the actual segmentation is performed using the VMTKLevelSetSegmentation module.

  • Use Case #1: Highlighting the Coronary Tree inside a blood-pool MRI using the Sato Vesselness filter
Watch the video..
This screencast shows the extraction of a coronary tree inside a cardiac blood-pool MRI by using a combination of the VMTKVesselEnhancement and the VMTKLevelSetSegmentation modules. Before the actual segmentation, VMTKVesselEnhancement is used to highlight the coronary tree which results in a much better segmentation. Watch the video here.
  • Use Case #2: Enhancement of vessels connected to a cerebral aneurysm to support the segmentation
Watch the video..
The segmentation of a cerebral aneurysm and its connecting vessels is shown in this screencast. Sato Vesselness of the VMTKVesselEnhancement module is used as a pre-processing step and the segmentation of the connecting vessels is performed on the vessel enhanced feature image using the VMTKLevelSetSegmentation module. The segmentation of the actual aneurysm is performed on the original image. How to establish the pipeline between VMTKVesselEnhancement and the VMTKLevelSetSegmentation module easily is explained as well. Watch the video here.

Quick Tour of Features and Use

The VMTKVesselEnhancement module provides three different algorithms for the highlighting of vascular or tubular structures.

  • I/O panel:

VMTKVesselEnhancement io panel.png

The MRML volume nodes to use as input and output can be specified at this panel.

  • Vessel Enhancement panel:

VMTKVesselEnhancement vesselenhancement panel.png

Three different filtering methods are available to highlight or enhance tubular structures. These are:

- FrangiVesselness based on Multiscale Vessel Enhancement Filtering by Frangi A. et al. (http://www.tecn.upf.es/~afrangi/articles/miccai1998.pdf)

- SatoVesselness based on Three-dimensional multi-scale line filter for segmentation and visualization of curvilinear structures in medical images by Sato Y. et al. (http://www.spl.harvard.edu/publications/bitstream/download/2732)

- VesselEnhancingDiffusion based on Vessel Enhancing Diffusion Filter by Enquobahrie A. et al. (http://hdl.handle.net/1926/558)

The range of tube diameters to be highlighted can be specified in millimeters. The steps between the minimal and maximal diameters regulate the accuracy of the vessel detection process.

Sensitivity thresholds can be specified to control the filtering for different types of structures.

Development

Dependencies

This module depends on the VMTK libraries which are provided in the VmtkSlicerModule. Therefore the VmtkSlicerModule has to be installed before the VMTKVesselEnhancement module can be used.

Known bugs & Usability issues

Fix when you installed old versions of the module and it does not work or the buttons on the interface look strange: Manually delete lib/Slicer3/Modules/@SVN@/VMTK* or where ever the extensions were installed (replace @SVN@ with the revision of your Slicer installation).

Follow this link to the VMTK in 3D Slicer bug tracker.

Source code & documentation

VMTKVesselEnhancement 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 SlicerVMTKVesselEnhancementGUI derives from ScriptedModuleGUI and saves the current user interface state to its own MRML node. The MRML nodes of the used volume and model data are additionally attached. This allows different instances of the vessel enhancement module to be run at the same time. The actual calls to the VMTK libraries are only performed in the class SlicerVMTKVesselEnhancementLogic.

Separate classes derived from the interface SlicerVMTKAdvancedPageSkeleton were created for each filtering method in order to ensure the possibility of maintenance and extension. The calls to the required methods like UpdateGUI() or UpdateMRML() get forwarded to each individual sub-­class to support the modular design and enable code encapsulation.

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

  • 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.
  • 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.