ITK/Examples

From KitwarePublic
< ITK
Revision as of 12:06, 24 November 2015 by DVigneault (talk | contribs) (→‎Meshes)
Jump to navigationJump to search

These are fully independent, compilable examples, developed with these goals in mind. There is significant overlap in the examples, but they are each intended to illustrate a different concept and be fully stand alone compilable. Please add examples in your areas of expertise! You can checkout the entire set of examples from this repository: https://github.com/InsightSoftwareConsortium/ITKWikiExamples

git clone https://github.com/InsightSoftwareConsortium/ITKWikiExamples.git ITKWikiExamples

About the Examples

ItkVtkGlue

ITK and VTK are very separate toolkits - ITK for image processing and VTK for data visualization. It is often convenient to use the two together - namely, to display an ITK image on the screen. The ITKVtkGlue module serves exactly this purpose. Also provided inside ItkVtkGlue is a QuickView class to allow a 2 line display of an ITK image.

Information for Wiki Examples Users

If you just want to use the Wiki Examples, go here. You will learn how to search for examples, build a few examples and build all of the examples.

Information for Wiki Examples Developers

If you want to contribute examples go here. You will learn how to add a new example and the guidelines for writing an example.

Information for Wiki Examples Administrators

If you are a Wiki Example Administrator or want to learn more about the process go here. You will learn how the Wiki Examples repository is organized, how the repository is synced to the wiki and how to add new topics, tests and regression baselines.

CMake Techniques

Example Name ITK Classes Demonstrated Description
Check if a specific module is present
Check for ITK4

Visualization

Example Name ITK Classes Demonstrated Description
Display an image QuickView

Simple Operations

Example Name ITK Classes Demonstrated Description
Apply a filter only to a specified region of an image SetRequestedRegion
Get the width and height of an image row, column
Variable length vector VariableLengthVector
Translate an image TranslationTransform, ResampleImageFilter
Get some basic information about a type NumericTraits Zero
Apply a color map to an image ScalarToRGBColormapImageFilter Pseudocolor, pseudo-color
Create and apply a custom colormap CustomColormapFunction
Create and apply a colormap closely resembling the default Paraview colormap "Cool to warm" CustomColormapFunction
Catch an ITK exception Try/Catch blocks
Get the points on a Bresenham line between two points BresenhamLine
Add an offset to a pixel index Offset
Distance between two points Point
Distance between two indices Point, Index
Create a vector Vector
Get the name/type/class of an object GetNameOfClass()
An object which holds the index of a pixel Index
An object which holds the size of an image Size
An object which holds the index (start) and size of a region of an image ImageRegion
Make part of an image transparent RGBAPixel Transparency, RGBA, alpha
Determine if one region is fully inside another region ImageRegion Region intersection, IsInside()
Determine if a pixel is inside of a region ImageRegion IsInside()
Determine the overlap of two regions ImageRegion Region intersection, crop a region
Duplicate an image ImageDuplicator
Produce an image of noise RandomImageSource
Set specified pixels to specified values Image
Create an RGB image RGBPixel
Convert an image from one type to another ConvertPixelBuffer Convert an RGBAImage to an RGBImage

Mathematical Operations

Example Name ITK Classes Demonstrated Description
Create a covariant vector CovariantVector This is the object which should be used to represent a mathematical vector.
Compute the norm of a covariant vector CovariantVector In-place and non-inplace norms.
Matrix Matrix
Matrix inverse Matrix
Mathematical constant pi = 3.14 Math
Dot product (inner product) of two vectors Vector
Amoeba Optimization AmoebaOptimizer Optimizing a function using itk::AmoebaOptimizer.
Levenberg-Marquardt Optimization LevenbergMarquardtOptimizer Optimizing a function using itk::LevenbergMarquardtOptimizer.

Trigonometric Filters

Example Name ITK Classes Demonstrated Description
Compute the sine of each pixel. SinImageFilter
Compute the arctangent of each pixel. Atan2ImageFilter

Image Functions

Example Name ITK Classes Demonstrated Description
Multiply a kernel with an image at a particular location NeighborhoodOperatorImageFunction
GaussianBlurImageFunction GaussianBlurImageFunction
GaussianBlurImageFunctionFilter GaussianBlurImageFunction
Compute the median of an image at a pixels (in a regular neighborhood) MedianImageFunction

Point Set

Example Name ITK Classes Demonstrated Description
Create a PointSet PointSet
Read a PointSet PointSet
Write a PointSet PointSet
Get the bounding box of a PointSet PointSet

Input/Output (IO)

Example Name ITK Classes Demonstrated Description
Read an image file with an unknown number of components ImageFileReader,VectorImage
Convert a C-style array to an itkImage ImportImageFilter
Read an image file without knowing its type before hand ImageFileReader Dimensions (information) without reading data
Write an image ImageFileWriter
Read an image ImageFileReader
Write a TIFF image TIFFImageIO This is a general demonstration of how to use a specific writer rather than relying on the ImageFileWriter to choose for you.
Display an ITK image ImageToVTKImageFilter
Write a transform to a file TransformFileWriter
Read a transform from a file TransformFileReader
Register a non-default transform with the transform factory TransformFactory
Create a 3D volume from a series of 2D images ImageSeriesReader Uses NumericSeriesFileNames to generate a list of file names

DICOM

Example Name ITK Classes Demonstrated Description
Resample a DICOM series GDCMImageIO Resample a DICOM series with user-specified spacing.

Blob Detection, Labeling, and Properties

Example Name ITK Classes Demonstrated Description
Remove labels from a LabelMap LabelMap
Apply an operation to every label object in a label map ObjectByObjectLabelMapFilter
Keep only regions that meet a specified threshold of a specified property ShapeOpeningLabelMapFilter
Keep only regions that rank above a certain level of a particular property LabelShapeKeepNObjectsImageFilter
Keep only regions that meet a specified threshold of a specified property BinaryStatisticsOpeningImageFilter
Color labeled regions in an image LabelMapOverlayImageFilter
Get geometric properties of labeled regions in an image LabelGeometryImageFilter
Get statistical properties of labeled regions in an image LabelStatisticsImageFilter
Color the boundaries of labeled regions in an image LabelMapContourOverlayImageFilter
Label binary regions in an image BinaryImageToLabelMapFilter Also demonstrates how to obtain which pixels belong to each label.
Label binary regions in an image and get their properties BinaryImageToShapeLabelMapFilter Region bounding box, centroid, etc.
Convert a LabelMap to a normal image with different values representing each region LabelMapToLabelImageFilter
Merges several labelmaps MergeLabelMapFilter
Overlay a LabelMap on an image LabelOverlayImageFilter
Compute shape attributes for a binary image LabelImageToShapeLabelMapFilter

Correlation

Example Name ITK Classes Demonstrated Description
Normalized correlation NormalizedCorrelationImageFilter
Normalized correlation of a masked image NormalizedCorrelationImageFilter
Normalized correlation using the FFT FFTNormalizedCorrelationImageFilter
Normalized correlation using the FFT with optional mask images for both input images MaskedFFTNormalizedCorrelationImageFilter

Image Processing

Example Name ITK Classes Demonstrated Description
Convert an RGB image to a luminance image RGBToLuminanceImageFilter
Skeletonize/thin an image BinaryThinningImageFilter
Scale an image ScaleTransform
Resample (stretch or compress) an image ResampleImageFilter Upsample, downsample, resize
Resample (stretch or compress) an RGB image VectorResampleImageFilter Upsample, downsample, resize
Resample (stretch or compress) a segmented image LabelImageGaussianInterpolateImageFunction Upsample, downsample, resize
Compute the mutual information between two image MutualInformationImageToImageFilter
Sharpen an image LaplacianSharpeningImageFilter
Pixel-wise division of two images DivideImageFilter Divide images
Compute a distance map from objects in a binary image ApproximateSignedDistanceMapImageFilter
Compute a distance map from objects in a binary image SignedDanielssonDistanceMapImageFilter
Compute a distance map from objects in a binary image SignedMaurerDistanceMapImageFilter
Scale all pixels so that their sum is a specified constant NormalizeToConstantImageFilter
RegionalMinimaImageFilter RegionalMinimaImageFilter
RegionalMaximaImageFilter RegionalMaximaImageFilter
Find zero crossings in a signed image ZeroCrossingImageFilter
Construct a multiresolution pyramid from an image RecursiveMultiResolutionPyramidImageFilter
Add a constant to every pixel in an image AddImageFilter
Subtract a constant from every pixel in an image SubtractImageFilter
Square every pixel in an image SquareImageFilter
Upsampling an image BSplineInterpolateImageFunction ResampleImageFilter Interpolate missing pixels in order to upsample an image. Note this only works on scalar images.
Flip an image over specified axes FlipImageFilter
Apply a transformation to the magnitude of vector valued image pixels VectorRescaleIntensityImageFilter
Apply a kernel to every pixel in an image NeighborhoodOperatorImageFilter
Apply a kernel to every pixel in an image that is non-zero in a mask MaskNeighborhoodOperatorImageFilter
Compute the Laplacian of an image LaplacianImageFilter Input image type must be double or float
Pad an image with a constant value ConstantPadImageFilter
Pad an image using mirroring over the boundaries MirrorPadImageFilter
Pad an image by wrapping WrapPadImageFilter
IntensityWindowingImageFilter IntensityWindowingImageFilter Apply a linear intensity transform from a specified input range to a specified output range.
Shrink an image ShrinkImageFilter Downsample an image
Multiply every pixel in an image by a constant MultiplyImageFilter
Compute the squared difference of corresponding pixels in two images SquaredDifferenceImageFilter
Compute the absolute value of the difference of corresponding pixels in two images AbsoluteValueDifferenceImageFilter
Add a constant to every pixel without duplicating the image in memory (an accessor) AddPixelAccessor
ValuedRegionalMaximaImageFilter ValuedRegionalMaximaImageFilter
ValuedRegionalMinimaImageFilter ValuedRegionalMinimaImageFilter
Pixel wise compare two input images and set the output pixel to their max MaximumImageFilter
Pixel wise compare two input images and set the output pixel to their min MinimumImageFilter
Binary AND two images AndImageFilter
Binary OR two images OrImageFilter
Binary XOR (exclusive OR) two images XorImageFilter
Invert an image using the Binary Not operation BinaryNotImageFilter
Compose a vector image (with 3 components) from three scalar images ComposeImageFilter
Extract a component/channel of an itkImage with pixels with multiple components NthElementImageAdaptor Use built in functionality to extract a component of an itkImage with CovariantVector components. Note this does not work for itkVectorImages - see VectorIndexSelectionCastImageFilter instead.
Present an image by first performing an operation ImageAdaptor A demonstration of how to present an image pixel as a function of the pixel. In this example the functionality of NthElementImageAdaptor is demonstrated.
Process the nth component/element/channel of a vector image NthElementImageAdaptor
Convolve an image with a kernel ConvolutionImageFilter Convolution.
Crop an image by specifying the region to keep ExtractImageFilter
Crop an image by specifying the region to throw away CropImageFilter
Compute the absolute value of an image AbsImageFilter magnitude
Invert an image InvertIntensityImageFilter
Apply a mask to an image MaskImageFilter
Apply the inverse of a mask to an image MaskNegatedImageFilter
Pass image pixels through a sigmoid function SigmoidImageFilter The qualitative description of how Alpha and Beta affect the function from the ITK Software Guide and the associated images would be nice to add to the doxygen.
Threshold an image ThresholdImageFilter The result is the original image but with the values below (or above) the threshold "clamped" to an output value.
Threshold an image BinaryThresholdImageFilter The result is a binary image (inside the threshold region or outside the threshold region).
Apply a custom operation to each pixel in an image UnaryFunctorImageFilter Perform a custom operation on every pixel in an image. This example rotates the vector-valued pixels by 90 degrees.
Apply a predefined operation to corresponding pixels in two images BinaryFunctorImageFilter
Apply a custom operation to corresponding pixels in two images BinaryFunctorImageFilter This example computes the squared difference between corresponding pixels.
Find the minimum and maximum value (and the position of the value) in an image MinimumMaximumImageCalculator
Add two images together AddImageFilter
Subtract two images SubtractImageFilter
Paste a part of one image into another image PasteImageFilter
Stack multiple 2D images into a 3D image TileImageFilter
Tile multiple images side by side TileImageFilter
Multiply two images together MultiplyImageFilter
Extract a portion of an image (region of interest) RegionOfInterestImageFilter
Rescale the intensity values of an image to a specified range RescaleIntensityImageFilter
Normalize an image NormalizeImageFilter
Cast an image from one type to another CastImageFilter
Cast an image from one type to another but clamp to the output value range ClampImageFilter
Switch the axes of an image PermuteAxesImageFilter
Linearly interpolate a position in an image LinearInterpolateImageFunction
HammingWindowFunction HammingWindowFunction
Run an image filter on a region of an image PasteImageFIlter This example uses the RequestedRegion of a filter to process a subset of an image.

Vector Images

Example Name ITK Classes Demonstrated Description
Compute the magnitude of each pixel in a vector image to produce a magnitude image VectorMagnitudeImageFilter
Create a vector image VectorImage An image with an ND vector at each pixel
Create a vector image from a collection of scalar images ComposeImageFilter Combine, layer
View a component of a vector image as if it were a scalar image VectorImageToImageAdaptor
Extract a component/channel of a vector image VectorIndexSelectionCastImageFilter This works with VectorImage as well as Image<Vector>
Translate a vector image TranslationTransform, VectorResampleImageFilter
Join images, stacking their components JoinImageFilter concatenate, channels
Stack scalar images into a VectorImage ImageToVectorImageFilter
NeighborhoodIterator on a VectorImage VectorImage NeighborhoodIterator
Cast a VectorImage to another type of VectorImage VectorImage

Iterating Over (Traversing) An Image

Example Name ITK Classes Demonstrated Description
Iterate over a region of an image with a shaped neighborhood Create the shape manually ShapedNeighborhoodIterator
Iterate over a region of an image with a shaped neighborhood Create the shape from a StructuringElement ShapedNeighborhoodIterator
Iterator over an image skipping a specified region ImageRegionExclusionConstIteratorWithIndex
Randomly select pixels from a region of an image ImageRandomConstIteratorWithIndex
Randomly select pixels from a region of an image without replacement ImageRandomNonRepeatingConstIteratorWithIndex
Iterate over a line through an image LineIterator Walks a Bresenham line through an image (with write access)
Iterate over a line through an image without write access LineConstIterator Walks a Bresenham line through an image (without write access)
Iterate over the central region (non-boundary) separately from the face-regions (boundary) ImageBoundaryFacesCalculator
Iterate over a region of an image with a neighborhood (with write access) NeighborhoodIterator
Iterate over a region of an image with a neighborhood (without write access) ConstNeighborhoodIterator
Iterate over a region of an image (with write access) ImageRegionIterator
Iterate over a region of an image (without write access) ImageRegionConstIterator
Make out of bounds pixels return a constant value ConstantBoundaryCondition
Iterate over a region of an image with efficient access to the current index (with write access) ImageRegionIteratorWithIndex
Iterate over a region of an image with efficient access to the current index (without write access) ImageRegionConstIteratorWithIndex

Kernels

Example Name ITK Classes Demonstrated Description
Create a Gaussian kernel GaussianOperator
Create a Gaussian derivative kernel GaussianDerivativeOperator
Create a Laplacian kernel LaplacianOperator
Create a derivative kernel DerivativeOperator
Create the Sobel kernel SobelOperator
Create a forward difference kernel ForwardDifferenceOperator
Create a backward difference kernel BackwardDifferenceOperator

Image Edges, Gradients, and Derivatives

Example Name ITK Classes Demonstrated Description
SobelEdgeDetectionImageFilter SobelEdgeDetectionImageFilter
Compute the derivative of an image in a particular direction DerivativeImageFilter
Compute the gradient of an image by convolution with the first derivative of a Gaussian GradientRecursiveGaussianImageFilter
Find the gradient magnitude of the image first smoothed with a Gaussian kernel GradientMagnitudeRecursiveGaussianImageFilter
Find higher derivatives of an image RecursiveGaussianImageFilter
Extract the boundaries of connected regions in a binary image BinaryContourImageFilter Blob boundary, border
Extract the inner and outer boundaries of blobs in a binary image BinaryContourImageFilter
Compute the gradient magnitude image GradientMagnitudeImageFilter
Compute the Laplacian of Gaussian (LoG) of an image LaplacianRecursiveGaussianImageFilter
A zero-crossing based edge detecor ZeroCrossingBasedEdgeDetectionImageFilter

Smoothing

Example Name ITK Classes Demonstrated Description
Anti alias a binary image AntiAliasBinaryImageFilter
BinaryMinMaxCurvatureFlow a binary image BinaryMinMaxCurvatureFlowImageFilter
Mean filter an image MeanImageFilter Replace each pixel by the mean of its neighborhood
Median filter an image MedianImageFilter Replace each pixel by the median of its neighborhood
Median filter an RGB image MedianImageFilter Replace each pixel by the median of its neighborhood
Smooth an image with a discrete Gaussian filter DiscreteGaussianImageFilter
Blur an image BinomialBlurImageFilter
Bilateral filter an image BilateralImageFilter Edge preserving smoothing.
Smooth an image using curvature flow CurvatureFlowImageFilter
Smooth an RGB image using curvature flow CurvatureFlowImageFilter Run curvature flow on each component of the RGB image
Smooth an image using min/max curvature flow MinMaxCurvatureFlowImageFilter
Smooth an RGB image using min/max curvature flow MinMaxCurvatureFlowImageFilter Run mon/max curvature flow on each component of the RGB image
Gaussian smoothing that works with image adaptors SmoothingRecursiveGaussianImageFilter
Smooth an image while preserving edges VectorGradientAnisotropicDiffusionImageFilter Anisotropic diffusion.
Smooth an image while preserving edges VectorCurvatureAnisotropicDiffusionImageFilter Anisotropic diffusion.

Morphology

Example Name ITK Classes Demonstrated Description
Erode a binary image BinaryErodeImageFilter
Dilate a binary image BinaryDilateImageFilter
Prune a binary image BinaryPruningImageFilter
Opening a binary image BinaryMorphologicalOpeningImageFilter
Closing a binary image BinaryMorphologicalClosingImageFilter
Dilate a grayscale image GrayscaleDilateImageFilter
Erode a grayscale image GrayscaleErodeImageFilter
Erode a binary image using a flat (box) structuring element FlatStructuringElement
Generate structuring elements with accurate area FlatStructuringElement In itkFlatStructuringElement, setting the foregroundHasAccurateArea flag to true will generate structuring elements with more accurate areas, which can be especially important when morphological operations are intended to remove or retain objects of particular sizes.
An elliptical structuring element BinaryBallStructuringElement

Curves

Example Name ITK Classes Demonstrated Description
Compute the mean distance between all points of two curves ContourMeanDistanceImageFilter
A data structure for a piece-wise linear curve PolyLineParametricPath

Spectral Analysis

Example Name ITK Classes Demonstrated Description
Compute the FFT of an image ForwardFFTImageFilter
Compute the inverse FFT of an image InverseFFTImageFilter
Compute the FFT of an image VnlFFTRealToComplexConjugateImageFilter
Compute the cross-correlation of two images in the Fourier domain VnlFFTRealToComplexConjugateImageFilterVnlFFTComplexConjugateToRealImageFilter
Convert a real image and an imaginary image to a complex image ComposeImageFilter

Utilities

Example Name ITK Classes Demonstrated Description
Add noise to a binary image ImageRandomNonRepeatingIteratorWithIndex Add uniform random noise to an image
Sort itk::Index Image Lexicographic, ordering
Return an object from a function
Create another instance of an image
Create another instance of the same type of object
Pass an image to a function Image
Create a list of file names NumericSeriesFileNames
Copy a filter Object Copy/duplicate a filter
Cartesian to AzimuthElevation and vice-versa AzimuthElevationToCartesianTransform
C-style array FixedArray
Deep copy an image
Permute a sequence of indices ImageRandomNonRepeatingConstIteratorWithIndex
Random number generator MersenneTwisterRandomVariateGenerator
Map scalars into a jet colormap JetColormapFunctor
Monitor a filter SimpleFilterWatcher See debug style information.
Time probe TimeProbe Compute the time between points in code. Timer. Timing.
Memory probe MemoryProbe Compute the memory used between points in code.
Observe an event Command
Vector container VectorContainer
Direct itk warnings to the console TextOutput
Direct itk warnings to a file FileOutputWindow

Statistics

Example Name ITK Classes Demonstrated Description
Compute histograms in a sliding window. MovingHistogramImageFilter
Compute a histogram from an RGB image. HistogramToImageFilterRGB
Compute a histogram from a itk::VectorImage. HistogramToImageFilterVectorImage
Compute a histogram from a grayscale image. HistogramToImageFilterGrayscale
Compute a histogram from measurements. Histogram
Compute min, max, variance and mean of an Image. StatisticsImageFilter
Create a Gaussian distribution GaussianDistribution
Create a histogram from a list of sample measurements SampleToHistogramFilter
Create a list of sample measurements ListSample
Create a list of samples from an image without duplicating the data ImageToListSampleAdaptor
Create a list of samples with associated class IDs MembershipSample
2D Gaussian Mixture Model Expectation Maximization ExpectationMaximizationMixtureModelEstimator EM
1D KMeans Clustering KdTreeBasedKMeansClustering
3D KMeans Clustering KdTreeBasedKMeansClustering
Spatial search KdTreeGenerator
Cluster the pixels in a greyscale image ScalarImageKmeansImageFilter
Compute the local noise in an image NoiseImageFilter
Compute kmeans clusters KdTreeBasedKmeansEstimator
Extract texture features using GLCM ScalarImageToCooccurrenceMatrixFilter

Spatial Objects

Example Name ITK Classes Demonstrated Description
Convert a spatial object to an image SpatialObjectToImageFilter
Ellipse EllipseSpatialObject Circle, dot
Line spatial object LineSpatialObject, LineSpatialObjectPoint Specify a piecewise-linear object by specifying points along the line.
Plane spatial object PlaneSpatialObject
Blob BlobSpatialObject

Inspection

Example Name ITK Classes Demonstrated Description
Combine two images by alternating blocks of a checkerboard pattern CheckerBoardImageFilter
Printing a pixel value to the console GetPixel

Metrics

Example Name ITK Classes Demonstrated Description
Compute the mean squares metric between two images MeanSquaresImageToImageMetric

Image Registration

Example Name ITK Classes Demonstrated Description
Warp one image to another using manually specified landmarks WarpImageFilter
Rigidly register one image to another using manually specified landmarks LandmarkBasedTransformInitializer
Register one image to another using manually specified landmarks DeformationFieldTransform
A basic global registration of two images ImageRegistrationMethod, TranslationTransform Translation only transform.
A global registration of two images ImageRegistrationMethod, AffineTransform Full affine transform.
A global registration of two images ImageRegistrationMethod, BSplineDeformableTransform BSpline transform.
Mutual Information MutualInformationImageToImageMetric, TranslationTransform Global registration by maximizing the mutual information and using a translation only transform
Mutual Information Affine MutualInformationImageToImageMetric, AffineTransform Global registration by maximizing the mutual information and using an affine transform
ExhaustiveOptimizer ExhaustiveOptimizer An optimizer that fully samples a grid on the parametric space

Image Segmentation

Example Name ITK Classes Demonstrated Description
Extract contours from an image ContourExtractor2DImageFilter
Watershed segmentation WatershedImageFilter
Morphological Watershed segmentation MorphologicalWatershedImageFilter
Mean shift clustering SampleMeanShiftClusteringFilter
Voronoi diagram VoronoiDiagram2DGenerator, VoronoiDiagram2D
Label connected components in a binary image ConnectedComponentImageFilter
Label connected components in a grayscale image ScalarConnectedComponentImageFilter
Assign contiguous labels to connected regions of an image RelabelComponentImageFilter
Label the contours of connected components LabelContourImageFilter
Segment pixels with similar statistics using connectivity ConfidenceConnectedImageFilter
Convert an itk::Image consisting of labeled regions to a LabelMap

LabelImageToLabelMapFilter ||

Convert an itk::Image consisting of labeled regions to a ShapeLabelMap LabelImageToShapeLabelMapFilter
Extract the largest connected component from a Binary Image
Simple implementation of Snakes
Extract the largest connected component from a Binary Image
Demonstrate available threshold algorithms
Demonstrate connected component algorithm using available threshold algorithms

Meshes

Example Name ITK Classes Demonstrated Description
Read and Write a Mesh MeshFileReader Read and write an itk::Mesh using a variety of file formats.
Decimation
Add points and edges
Compute normals of a mesh QuadEdgeMeshNormalFilter
Planar parameterization of a mesh ParameterizationQuadEdgeMeshFilter Compute linear parameterization of a mesh homeomorphic to a disk on the plane
Subdivide an itk::QuadEdgeMesh LoopTriangleCellSubdivisionQuadEdgeMeshFilter Perform a loop triangle cell subdivision on a spherical quad edge mesh.
Calculate Area and Volume of an itk::SimplexMesh SimplexMeshVolumeCalculator Calculate the area and volume of an itk::SimplexMesh.
Convert an itk::Mesh to a vtkUnstructuredGrid
Write an itk::Mesh to a vtp (vtkPolyData) file VTKPolyDataWriter
Working with PointData and CellData Mesh Associate point and cell data with a mesh.

Need Demo

This section consists of examples which compile and work, but a good demonstration image must be selected and added.

Example Name ITK Classes Demonstrated Description
Adaptive histogram equalization AdaptiveHistogramEqualizationImageFilter


Wish List

Example Name ITK Classes Demonstrated Description
Match feature points (hierarchically?) BlockMatchingImageFilter Segfault.
Uses a custom user matrix to align the image with DICOM physical space ImageToVTKImageFilter Need demo image.
Compute a PCA shape model from a training sample ImagePCAShapeModelEstimator

Estimate the principal modes of variation of a shape from a training sample. Useful for shape guide segmentation. Need example input files and arguments.

Multiphase Chan And Vese Sparse Field Level Set Segmentation ScalarChanAndVeseSparseLevelSetImageFilter, ScalarChanAndVeseLevelSetFunction Need example input files and arguments.
Single-phase Chan And Vese Sparse Field Level Set Segmentation ScalarChanAndVeseSparseLevelSetImageFilter, ScalarChanAndVeseLevelSetFunction Need example input files and arguments.
KMeans Clustering Need example input files and arguments.
Single-phase Chan And Vese Dense Field Level Set Segmentation ScalarChanAndVeseDenseLevelSetImageFilter, ScalarChanAndVeseLevelSetFunction Need example input files and arguments.
DisconnectPipeline
ConditionalConstIterator ConditionalConstIterator
Compute texture features ScalarImageToTextureFeaturesFilter How to interpret the output?
Resample an itk::VectorImage
Compute the histogram of a masked region of an image MaskedImageToHistogramFilter
Fit a spline to a point set BSplineScatteredDataPointSetToImageFilter
BinaryPruningImageFilter BinaryPruningImageFilter
Compute distributions of image pixels using GMM EM GaussianMixtureModelComponent
LevenbergMarquart
IterativeClosestPoints
Demonstrate all operators NeighborhoodOperator
Color Normalized Correlation NormalizedCorrelationImageFilter
ContourSpatialObject ContourSpatialObject
Store non-pixel associated data in an image MetaDataDictionary
Level Sets
Region Growing
Separate foreground and background using Otsu's method OtsuThresholdImageFilter
Generate multiple thresholds using Otsu's method OtsuMultipleThresholdsImageFilter
Extract contours from an image SimpleContourExtractorImageFilter
Present an image of RGBPixel pixels as an image of vectors RGBToVectorImageAdaptor
HoughTransform2DCirclesImageFilter HoughTransform2DCirclesImageFilter
HoughTransform2DLinesImageFilter HoughTransform2DLinesImageFilter
Write data from Matlab in a format readable by ITK
Write data from ITK in a format readable by Matlab
Compute edge potential EdgePotentialImageFilter

Included in the ITK Repository

Example Name ITK Classes Demonstrated Description
Image registration

Matlab

Example Name ITK Classes Demonstrated Description

Developer Examples

Example Name ITK Classes Demonstrated Description
Throw an exception
Concept checking ConceptChecking
Produce an image programmatically. ImageSource Nothing in, image out.
Filter an image ImageToImageFilter Image in, same type of image out.
Filter an image without copying its data InPlaceImageFilter
Filter an image using multiple threads ImageToImageFilter
Multi-threaded oil painting image filter ImageToImageFilter and MinimumMaximumImageCalculator A simple multi-threaded scenario (oil painting artistic filter). You can also use this class as-is (copy .h and .txx files into your project and use them).
Write a filter with multiple inputs of the same type. ImageToImageFilter Two images in (same type), same type of image out.
Write a filter with multiple inputs of different types. ImageToImageFilter Two images in (different type), image (same type as first input) out.
Write a filter with multiple outputs of the same type. ImageToImageFilter Images in, two images out (same type as first input).
Write a filter with multiple outputs of different types. ImageToImageFilter Images in, two images out (different types).
Get or set a member variable of an ITK class. SetMacro, GetMacro
Output an error, a warning, or debug information. DebugMacro, ErrorMacro, WarningMacro
MiniPipeline

Problems

Small Problems

Example Name ITK Classes Demonstrated Description
Compute kmeans clusters of pixels in an image ImageKmeansModelEstimator Segfault.
Iterate over an image starting at a seed and following a rule for connectivity decisions FloodFilledImageFunctionConditionalIterator
Traverse a region using a flood fill iterator FloodFilledSpatialFunctionConditionalIterator How to do this?
Compute the gradient of a vector image GradientImageFilter How to do this?
Compute distributions of image pixels using GMM EM ExpectationMaximizationMixtureModelEstimator
Compute distributions of samples using GMM EM ExpectationMaximizationMixtureModelEstimator Someone please confirm that this outputs the mean and the variance (i.e. I used a standard deviation of 30 to create the samples and the second estimated parameter is near 1000 (~30^2) . Is this correct?)
Find edges in an image CannyEdgeDetectionImageFilter How to set a reasonable Threshold for the output edges?
Compute the histogram of an image Statistics_1_1ImageToHistogramFilter The last entry of the red histogram should contain several values, but it is 0?
Classifying pixels using KMeans KmeansModelEstimator How to apply the labels of the filter to the input image?
Basic region growing RegionGrowImageFilter Just getting started with demo...
Find connected components in an image ConnectedThresholdImageFilter Just need to finish it.
Convert an image from one type to another ConvertPixelBuffer
In-place filtering of an image InPlaceImageFilter This only works for filters which derive from itkInPlaceImageFilter
Convert a VTK image to an ITK image VTKImageToImageFilter Seems to expect an input image with only 1 component? (i.e. greyscale)

Big Problems

Example Name ITK Classes Demonstrated Description
Find the best position of the moving image in the fixed image. MeanSquaresImageToImageMetric Output (0,0) is incorrect.
Compute and display the gradient of an image GradientImageFilter Blank output on the screen (the filter works fine). There should be a "DisplayVectorImage" added to itkQuickView that draws vector glyphs at specified pixels of an image.