Applications

The following applications illustrate the use of ITK in real-world medical imaging applications. Note these application are found in the ITKApps repository. They differ from the ITK/Examples examples in that they use other systems such as VTK, FLTK and Qt to create turn-key applications. The recommended way to build ITKApps utilizes the "superbuild" functionality that will build dependencies such as FLTK and ITK in addition to the applications themselves. To make a superbuild, point CMake to *ITKApps/Superbuild *as the source directory, i.e.

**cmake /path/to/ITKApps/Superbuild
**To obtain the ITKApps repository either obtain an official release or use the following Git command:

Here are the applications.

- ITK-SNAP

A tool for viewing medical images and for delineating and extracting anatomical structures. ITK-SNAP can be used in two different modes: manual segmentation and semi-automatic segmentation. The manual mode is used for segmentation using hand contouring and for cleaning up the results of automatic segmentation. In the semi-automatic mode, a powerful level set segmentation algorithm is used to segment anatomical structures in three dimensions. This algorithm requires some guidance from the user, and ITK-SNAP provides an easy interface to provide such guidance. Full details on ITK-SNAP can be found at http://www.itksnap.org

- Geodesic Active Contour Segmentation

Illustrates how to use the GeodesicActiveContour filter in a pipeline. This Level Set approach propagates a contour from a user-provided initial level set. The contour advances with a speed computed from the intensity of input image gradient magnitude and includes a balloon inflation force.

- Shape Detection Level Set Segmentation

Illustrates how to use the ShapeDetectionLevelSetFilter in a pipeline. This Level Set approach propagates a contour from a user-provided initial level set. The contour advances with a speed computed from the intensity of input image gradient magnitude.

- Fast Marching Level Set Segmentation

Illustrates how to use the FastMarchingImageFilter in a pipeline. This Level Set approach propagates a contour from a set of user-selected seed. The contour advances with a speed computed from the intensity of input image gradient magnitude.

- Region Growing Segmentation

Illustrates how to use basic segmentation filter in a typical pipeline starting from boundary preserving smoothing followed by seed selection and region growing. Final images are cleaned up using mathematical morphology.

- Interactive Segmentation using the Insight Segmentation Editor Tool

Introduces the Segmentation Editor tool, an interactive application developed in ITK and VTK for semi-automated segmentation of image data.

- Reducing Aliasing Artifacts in Iso-Surfaces of Binary Volumes

This application illustrates a surface estimation technique using level-set methods for reducing aliasing artifacts when visualizing binary volumes.

- Multi-modal 3D image registration using mutual information maximization

This application illustrates the use of the ITK registration framework to register three-dimensional CT and MR images of the head.

- Gaussian Filter

This application illustrates the effect of gaussian filtering on 2D and 3D images. It is also intended to clearly display the pipeline architecture of the toolkit as well as the mechanisms for integrating the toolkit with a GUI.

- Extraction of 2D Curves using statistical pattern recognition

This application illustrates the use of gaussian blurring and statistical pattern recognition to detect and extract the points along the center line of tubular structures in 2D images.

- Extraction of 3D tubular structures in a volume using eigen analysis

This application illustrates the use of eigen analysis to characterize the local shape structure and detect and extract tubular structures in MRA datasets.

- Coordinate Transformation based on Splines

Transformations can be defined between a source space and a target space by placing a set of landmarks on the source space and a set of associated landmarks on the output space. Each pair of landmarks define a displacement from the input space to the output space. The displacements corresponding to any other arbitrary points can be computed by interpolation with Splines. Insight provides a set of different Spline strategies. This application illustrates the characteristics of each ones of this Spline based transforms.

- Cellular Model for Image Processing and Shape Recognition

Morphogenesis is the process by which shape is generated. This application uses the biologically inspired paradigm of cellular interaction to implement a computational mechanism for image processing. It can be seen as a generalized cellular automata with biologically extended functionality.

- Magnetic Resonance Imaging(MRI) Bias-field Correction Filter

In MRI images intensity inhomogeneity, which is caused by magnetic settings, patients' position and other factors, is not unusual. This application has several small utilities that can be used to reduce such inhomogeneity.

- Bayesian Minimum Error Classifier for Classes of Gaussian Distributions

This application shows how to use the components in the itk::Statistics namespace for implementing a statistical pattern classifier. This application is not intended to be a practical application.

- Watershed Segmentation of Images and Volumes

Watershed segmentation can be used to automatically generate a hierarchy of segmented images. The hierarchy is a representation of the continuous erosion of segment boundaries as a threshold value is increased above saliency measures on those boundaries. This application describes how to use the itkWatershedImageFilter to perform segmentations of itk::Images.

- How To Create an Ellipsoid in an Image

This application demonstrates how to create an itkImage consisting of an ellipsoid using the EllipsoidInteriorExteriorSpatialFunction found in the*functions*module.

- How To Create a Symmetric Ellipsoid in an Image

This application demonstrates how to create an itkImage consisting of a symmetric ellipsoid along an orientation vector using the SymmetricEllipsoidInteriorExteriorSpatialFunction found in the*functions*module.

- MRI Registration Using Mutual Information

This application combines the Visualization Toolkit and Insight to register 3D MRI datasets.

- ITKFilterLib and ITKRegistrationLib

These two applications demonstrate how to create static libraries (e.g., .lib files) that provide (1) select itk filters in a non-templated class and (2) a function call to run the Multi-Resolution Mutual Information Registration module.

- Using ITK from MATLAB

MATLAB is well-known for its easy-to-use, powerful prototyping capabilities that significantly improve productivity. With the help of MATITK, biomedical image computing researchers familiar with MATLAB can harness the power of ITK algorithms while avoiding learning C++ and dealing with low-level programming issues.

- How to Get Image Data

This section describes several methods for getting image data that can be used with the applications.