ITK/Examples: Difference between revisions

From KitwarePublic
< ITK
Jump to navigationJump to search
(Outdated examples)
 
(624 intermediate revisions by 17 users not shown)
Line 1: Line 1:
These are fully independent, compilable examples. There is significant overlap in the examples, but they are each intended to illustrate a different concept and be fully stand alone compilable.
{{warning|1=The media wiki content on this page is no longer maintained. The examples presented on the https://itk.org/Wiki/*  pages likely require ITK version 4.13 or earlier releases.   In many cases, the examples on this page no longer conform to the best practices for modern ITK versions.
Please add examples in your areas of expertise!
You can checkout the entire set of examples from this repository:
http://gitorious.org/itkwikiexamples/itkwikiexamples
<pre>git clone git://gitorious.org/itkwikiexamples/itkwikiexamples.git ITKWikiExamples</pre>


==About the Examples==
Recent examples that are up to date with ITK version 5 can be found at [https://itk.org/ITKExamples ITK Examples]}}
* [http://www.itk.org/Wiki/images/e/e6/ITK_Examples_Iowa_Meeting_2010_11-8-2010.odp Official announcement]
===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 kit serves exactly this purpose. Also provided inside ItkVtkGlue is a QuickView class to allow a 2 line display of an ITK image.
 
If you download the entire ITK Wiki Examples Collection, the ItkVtkGlue directory will be included and configured. If you wish to just build a few examples, then you will need to [http://gitorious.org/itkwikiexamples/itkwikiexamples/blobs/raw/master/ItkVtkGlue.tar.gz download ItkVtkGlue] and build it.
 
===[[ITK/Examples/Instructions/ForUsers|Information for Wiki Examples Users]]===
If you just want to use the Wiki Examples, [[ITK/Examples/Instructions/ForUsers|go here]]. You will learn how to search for examples, build a few examples and build all of the examples.
 
===[[ITK/Examples/Instructions/ForDevelopers|Information for Wiki Examples Developers]]===
If you want to contribute examples [[ITK/Examples/Instructions/ForDevelopers|go here]]. You will learn how to add a new example and the guidelines for writing an example.
 
===[[ITK/Examples/Instructions/ForAdministrators|Information for Wiki Examples Administrators]]===
If you are a Wiki Example Administrator or want to learn more about the process [[ITK/Examples/Instructions/ForAdministrators|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.
 
==Simple Operations==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/SimpleOperations/VectorResampleImageFilter | Translate a vector image]] || {{ITKDoxygenURL|TranslationTransform}}, {{ITKDoxygenURL|VectorResampleImageFilter}} ||
|-
| [[ITK/Examples/SimpleOperations/TranslationTransform | Translate an image]] || {{ITKDoxygenURL|TranslationTransform}}, {{ITKDoxygenURL|ResampleImageFilter}} ||
|-
| [[ITK/Examples/SimpleOperations/NumericTraits | Get some basic information about a type]] || {{ITKDoxygenURL|NumericTraits}}||
|-
| [[ITK/Examples/SimpleOperations/ScalarToRGBColormapImageFilter | Apply a color map to an image]] || {{ITKDoxygenURL|ScalarToRGBColormapImageFilter}}||
|-
| [[ITK/Examples/SimpleOperations/TryCatch | Catch an ITK exception]] || || Try/Catch blocks
|-
| [[ITK/Examples/SimpleOperations/BresenhamLine | Get the points on a Bresenham line between two points]] || {{ITKDoxygenURL|BresenhamLine}} ||
|-
| [[ITK/Examples/SimpleOperations/Offset | Add an offset to a pixel index]] || {{ITKDoxygenURL|Offset}} ||
|-
| [[ITK/Examples/SimpleOperations/DistanceBetweenPoints | Distance between two points]] || {{ITKDoxygenURL|Point}} ||
|-
| [[ITK/Examples/SimpleOperations/DistanceBetweenIndices | Distance between two indices]] || {{ITKDoxygenURL|Point}}, {{ITKDoxygenURL|Index}} ||
|-
| [[ITK/Examples/SimpleOperations/CreateVector | Create a vector]] || {{ITKDoxygenURL|Vector}} ||
|-
| [[ITK/Examples/SimpleOperations/CovariantVector | Create a covariant vector]] || {{ITKDoxygenURL|CovariantVector}} ||
|-
| [[ITK/Examples/SimpleOperations/GetNameOfClass | Get the name/type/class of an object ]] || || GetNameOfClass()
|-
| [[ITK/Examples/Images/Index | An object which holds the index of a pixel ]] || {{ITKDoxygenURL|Index}} ||
|-
| [[ITK/Examples/Images/Size | An object which holds the size of an image ]] || {{ITKDoxygenURL|Size}} ||
|-
| [[ITK/Examples/Images/ImageRegion | An object which holds the index (start) and size of a region of an image ]] || {{ITKDoxygenURL|ImageRegion}} ||
|-
| [[ITK/Examples/SimpleOperations/Transparency | Make part of an image transparent]] || {{ITKDoxygenURL|RGBAPixel}} || Transparency, RGBA, alpha
|-
| [[ITK/Examples/SimpleOperations/RegionIntersection | Determine if one region is fully inside another region]] || {{ITKDoxygenURL|ImageRegion}} || Region intersection, IsInside()
|-
| [[ITK/Examples/SimpleOperations/PixelInsideRegion | Determine if a pixel is inside of a region]] || {{ITKDoxygenURL|ImageRegion}} || IsInside()
|-
| [[ITK/Examples/SimpleOperations/RegionOverlap | Determine the overlap of two regions]] || {{ITKDoxygenURL|ImageRegion}} || Region intersection
|-
| [[ITK/Examples/SimpleOperations/ImageDuplicator | Duplicate an image]] || {{ITKDoxygenURL|ImageDuplicator}} ||
|-
| [[ITK/Examples/SimpleOperations/RandomImageSource | Produce an image of noise]] || {{ITKDoxygenURL|RandomImageSource}} ||
|-
| [[ITK/Examples/SimpleOperations/VectorImage | Create a vector image]] || {{ITKDoxygenURL|VectorImage}} || An image with an ND vector at each pixel
|-
| [[ITK/Examples/SimpleOperations/SetPixels | Set specified pixels to specified values]] || {{ITKDoxygenURL|Image}} ||
|}
 
 
==Input/Output (IO)==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/IO/ImportImageFilter| Convert a C-style array to an itkImage]] || {{ITKDoxygenURL|ImportImageFilter}} ||
|-
| [[ITK/Examples/IO/ReadUnknownImageType | Read an image file without knowing its type before hand]] || {{ITKDoxygenURL|ImageFileReader}} ||
|-
| [[ITK/Examples/IO/ImageFileWriter | Write an image]] || {{ITKDoxygenURL|ImageFileWriter}} ||
|-
| [[ITK/Examples/IO/ImageFileReader | Read an image]] || {{ITKDoxygenURL|ImageFileReader}} ||
|-
| [[ITK/Examples/IO/TIFFImageIO | Write a TIFF image]] || {{ITKDoxygenURL|TIFFImageIO}} || This is a general demonstration of how to use a specific writer rather than relying on the ImageFileWriter to choose for you.
|-
| [[ITK/Examples/IO/ImageToVTKImageFilter | Display an ITK image]] || {{ITKDoxygenURL|ImageToVTKImageFilter}} ||
|}
 
==DICOM==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/DICOM/ResampleDICOM | Resample a DICOM series]] || {{ITKDoxygenURL|GDCMImageIO}} || Resample a DICOM series with user-specified spacing.
|}
 
==Image Processing==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/ImageProcessing/LaplacianImageFilter | Compute the Laplacian of an image]] || {{ITKDoxygenURL|LaplacianImageFilter}} || Input image type must be double or float
|-
| [[ITK/Examples/Images/ConstantPadImageFilter | Pad an image with a constant value]] || {{ITKDoxygenURL|ConstantPadImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/IntensityWindowingImageFilter| IntensityWindowingImageFilter]] || {{ITKDoxygenURL|IntensityWindowingImageFilter}}  || Apply a linear intensity transform from a specified input range to a specified output range.
|-
| [[ITK/Examples/Images/ShrinkImageFilter | Shrink an image]] || {{ITKDoxygenURL|ShrinkImageFilter}} ||
|-
| [[ITK/Examples/Images/NormalizedCorrelationImageFilter | Normalized correlation]] || {{ITKDoxygenURL|NormalizedCorrelationImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/MultiplyByConstantImageFilter | Multiply every pixel in an image by a constant]] || {{ITKDoxygenURL|MultiplyByConstantImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/SquaredDifferenceImageFilter | Compute the squared difference of corresponding pixels in two images]] || {{ITKDoxygenURL|SquaredDifferenceImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/AddPixelAccessor | Add a constant to every pixel without duplicating the image in memory (an accessor)]] || {{ITKDoxygenURL|AddPixelAccessor}} ||
|-
| [[ITK/Examples/ImageProcessing/RegionalMaximaImageFilter | RegionalMaximaImageFilter]] || {{ITKDoxygenURL|RegionalMaximaImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/ValuedRegionalMaximaImageFilter | ValuedRegionalMaximaImageFilter]] || {{ITKDoxygenURL|ValuedRegionalMaximaImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/MaximumImageFilter | Pixel wise compare two input images and set the output pixel to their max]] || {{ITKDoxygenURL|MaximumImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/MinimumImageFilter | Pixel wise compare two input images and set the output pixel to their min]] || {{ITKDoxygenURL|MinimumImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/AndImageFilter | Binary AND two images]] || {{ITKDoxygenURL|AndImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/BinaryNotImageFilter | Invert an image using the Binary Not operation]] || {{ITKDoxygenURL|BinaryNotImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/Compose3DCovariantVectorImageFilter | Compose a vector image (with 3 components) from three scalar images]] || {{ITKDoxygenURL|Compose3DCovariantVectorImageFilter}} || Create an RGB image from scalar images. Combine individual channels into a color image.
|-
| [[ITK/Examples/ImageProcessing/NthElementImageAdaptor | Extract a component of a vector image]] || {{ITKDoxygenURL|NthElementImageAdaptor}} || Use built in functionality to extract a component of a vector image.
|-
| [[ITK/Examples/ImageProcessing/ImageAdaptorExtractVectorComponent | Present an image by first performing an operation]] || {{ITKDoxygenURL|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.
|-
| [[ITK/Examples/ImageProcessing/ProcessingNthImageElement | Process the nth component/element of a vector image]] || {{ITKDoxygenURL|NthElementImageAdaptor}} ||
|-
| [[ITK/Examples/ImageProcessing/BinaryImageToShapeLabelMapFilter | Label binary regions in an image and get their properties]] || {{ITKDoxygenURL|BinaryImageToShapeLabelMapFilter}} || Region bounding box, etc.
|-
| [[ITK/Examples/ImageProcessing/ConvolutionImageFilter | Convolve an image with a kernel]] || {{ITKDoxygenURL|ConvolutionImageFilter}} || Convolution.
|-
| [[ITK/Examples/ImageProcessing/RelabelComponentImageFilter | Assign contiguous labels to connected regions of an image]] || {{ITKDoxygenURL|RelabelComponentImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/CropImageFilter | Crop an image]] || {{ITKDoxygenURL|CropImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/AbsImageFilter | Compute the absolute value of an image]] || {{ITKDoxygenURL|AbsImageFilter}} || magnitude
|-
| [[ITK/Examples/ImageProcessing/InvertIntensityImageFilter | Invert an image]] || {{ITKDoxygenURL|InvertIntensityImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/MaskImageFilter | Apply a mask to an image]] || {{ITKDoxygenURL|MaskImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/SigmoidImageFilter | Pass image pixels through a sigmoid function]] || {{ITKDoxygenURL|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.
|-
| [[ITK/Examples/ImageProcessing/ThresholdImageFilter | Threshold an image]] || {{ITKDoxygenURL|ThresholdImageFilter}} || The result is the original image but with the values below (or above) the threshold "clamped" to an output value.
|-
| [[ITK/Examples/ImageProcessing/BinaryThresholdImageFilter | Threshold an image]] || {{ITKDoxygenURL|BinaryThresholdImageFilter}} || The result is a binary image (inside the threshold region or outside the threshold region).
|-
| [[ITK/Examples/ImageProcessing/UnaryFunctorImageFilter | Apply a custom operation to each pixel in an image]] || {{ITKDoxygenURL|UnaryFunctorImageFilter}} || Perform a custom operation on every pixel in an image. This example rotates the vector-valued pixels by 90 degrees.
|-
| [[ITK/Examples/ImageProcessing/BinaryFunctorImageFilter | Apply a custom operation to corresponding pixels in two images]] || {{ITKDoxygenURL|BinaryFunctorImageFilter}} || This example computes the squared difference between corresponding pixels.
|-
| [[ITK/Examples/ImageProcessing/MinimumMaximumImageCalculator | Find the minimum and maximum value (and the position of the value) in an image]] || {{ITKDoxygenURL|MinimumMaximumImageCalculator}} ||
|-
| [[ITK/Examples/ImageProcessing/AddImageFilter | Add two images together]] || {{ITKDoxygenURL|AddImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/SubtractImageFilter | Subtract two images]] || {{ITKDoxygenURL|SubtractImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/PasteImageFilter | Paste a part of one image into another image]] || {{ITKDoxygenURL|PasteImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/TileImageFilter | Tile multiple images into another image]] || {{ITKDoxygenURL|TileImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/MultiplyImageFilter | Multiply two images together]] || {{ITKDoxygenURL|MultiplyImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/RegionOfInterestImageFilter | Extract a portion of an image (region of interest)]] || {{ITKDoxygenURL|RegionOfInterestImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/RescaleIntensityImageFilter | Rescale the intensity values of an image to a specified range]] || {{ITKDoxygenURL|RescaleIntensityImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/ConnectedComponentImageFilter | Label connected components in a binary image]] || {{ITKDoxygenURL|ConnectedComponentImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/NormalizeImageFilter | Normalize an image]] || {{ITKDoxygenURL|NormalizeImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/CastImageFilter | Cast an image from one type to another]] || {{ITKDoxygenURL|CastImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/PermuteAxesImageFilter | Switch the axes of an image]] || {{ITKDoxygenURL|PermuteAxesImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/LinearInterpolateImageFunction | Linearly interpolate a position in an image]] || {{ITKDoxygenURL|LinearInterpolateImageFunction}} ||
|-
| [[ITK/Examples/ImageProcessing/HammingWindowFunction | HammingWindowFunction]] || {{ITKDoxygenURL|HammingWindowFunction}} ||
 
|}
 
==Iterating Over (Traversing) An Image==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Iterators/ImageRegionExclusionConstIteratorWithIndex | Iterator over an image skipping a specified region]] || {{ITKDoxygenURL|ImageRegionExclusionConstIteratorWithIndex}} ||
|-
| [[ITK/Examples/Iterators/ImageRandomConstIteratorWithIndex | Randomly select pixels from a region of an image]] || {{ITKDoxygenURL|ImageRandomConstIteratorWithIndex}} ||
|-
| [[ITK/Examples/Iterators/ImageRandomNonRepeatingConstIteratorWithIndex | Randomly select pixels from a region of an image without replacement]] || {{ITKDoxygenURL|ImageRandomNonRepeatingConstIteratorWithIndex}} ||
|-
| [[ITK/Examples/Iterators/LineConstIterator | Iterate over a line through an image]] || {{ITKDoxygenURL|LineConstIterator}} || Walks a Bresenham line through an image
|-
| [[ITK/Examples/Iterators/ImageBoundaryFacesCalculator | Iterate over the central region (non-boundary) separately from the face-regions (boundary)]] || {{ITKDoxygenURL|ImageBoundaryFacesCalculator}} ||
|-
| [[ITK/Examples/Iterators/NeighborhoodIterator | Iterate over a region of an image with a neighborhood (with write access)]] || {{ITKDoxygenURL|NeighborhoodIterator}} ||
|-
| [[ITK/Examples/Iterators/ConstNeighborhoodIterator | Iterate over a region of an image with a neighborhood (without write access)]] || {{ITKDoxygenURL|ConstNeighborhoodIterator}} ||
|-
| [[ITK/Examples/Iterators/ImageRegionIterator | Iterate over a region of an image (with write access)]] || {{ITKDoxygenURL|ImageRegionIterator}} ||
|-
| [[ITK/Examples/Iterators/ImageRegionConstIterator | Iterate over a region of an image (without write access)]] || {{ITKDoxygenURL|ImageRegionConstIterator}} ||
|-
| [[ITK/Examples/Iterators/ConstantBoundaryCondition | Make out of bounds pixels return a constant value]] || {{ITKDoxygenURL|ConstantBoundaryCondition}} ||
|-
| [[ITK/Examples/Iterators/ImageRegionIteratorWithIndex | Iterate over a region of an image with efficient access to the current index (with write access)]] || {{ITKDoxygenURL|ImageRegionIteratorWithIndex}} ||
|-
| [[ITK/Examples/Iterators/ImageRegionConstIteratorWithIndex | Iterate over a region of an image with efficient access to the current index (without write access)]] || {{ITKDoxygenURL|ImageRegionConstIteratorWithIndex}} ||
|}
 
==Image Edges, Gradients, and Derivatives==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/EdgesAndGradients/DerivativeOperator | Create a derivative kernel]] || {{ITKDoxygenURL|DerivativeOperator}} ||
|-
| [[ITK/Examples/EdgesAndGradients/SobelOperator | Create the Sobel kernel]] || {{ITKDoxygenURL|SobelOperator}} ||
|-
| [[ITK/Examples/EdgesAndGradients/DerivativeImageFilter | Compute the derivative of an image in a particular direction]] || {{ITKDoxygenURL|DerivativeImageFilter}} ||
|-
| [[ITK/Examples/EdgesAndGradients/GradientMagnitudeRecursiveGaussianImageFilter | Find the gradient magnitude of the image first smoothed with a Gaussian kernel]] || {{ITKDoxygenURL|GradientMagnitudeRecursiveGaussianImageFilter}} ||
|-
| [[ITK/Examples/EdgesAndGradients/RecursiveGaussianImageFilter | Find higher derivatives of an image]] || {{ITKDoxygenURL|RecursiveGaussianImageFilter}} ||
|-
| [[ITK/Examples/EdgesAndGradients/BinaryContourImageFilter | Extract the boundaries of connected regions in a binary image]] || {{ITKDoxygenURL|BinaryContourImageFilter}} || Blob boundary, border
|-
| [[ITK/Examples/EdgesAndGradients/BinaryBoundaries | Extract the inner and outer boundaries of blobs in a binary image]] || {{ITKDoxygenURL|BinaryContourImageFilter}} ||
|-
| [[ITK/Examples/EdgesAndGradients/GradientMagnitudeImageFilter | Compute the gradient magnitude image]] || {{ITKDoxygenURL|GradientMagnitudeImageFilter}} ||
|-
| [[ITK/Examples/EdgesAndGradients/LaplacianRecursiveGaussianImageFilter | Compute the Laplacian of an image]] || {{ITKDoxygenURL|LaplacianRecursiveGaussianImageFilter}} ||
|}
 
==Smoothing==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Smoothing/AntiAliasBinaryImageFilter | Anti alias a binary image]] || {{ITKDoxygenURL|AntiAliasBinaryImageFilter}} ||
|-
| [[ITK/Examples/Smoothing/MeanImageFilter | Mean filter an image]] || {{ITKDoxygenURL|MeanImageFilter}} || Replace each pixel by the mean of its neighborhood
|-
| [[ITK/Examples/Smoothing/MedianImageFilter | Median filter an image]] || {{ITKDoxygenURL|MedianImageFilter}} || Replace each pixel by the median of its neighborhood
|-
| [[ITK/Examples/Smoothing/DiscreteGaussianImageFilter | Smooth an image with a discrete Gaussian filter]] || {{ITKDoxygenURL|DiscreteGaussianImageFilter}} ||
|-
| [[ITK/Examples/Smoothing/BinomialBlurImageFilter | Blur an image]] || {{ITKDoxygenURL|BinomialBlurImageFilter}} ||
|-
| [[ITK/Examples/Smoothing/BilateralImageFilter | Bilateral filter an image]] || {{ITKDoxygenURL|BilateralImageFilter}} || Edge preserving smoothing.
|-
| [[ITK/Examples/Smoothing/CurvatureFlowImageFilter | Smooth an image using curvature flow]] || {{ITKDoxygenURL|CurvatureFlowImageFilterType}} ||
|-
| [[ITK/Examples/Smoothing/SmoothingRecursiveGaussianImageFilter | Gaussian smoothing that works with image adaptors]] || {{ITKDoxygenURL|SmoothingRecursiveGaussianImageFilter}} ||
|}
 
==Morphology==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Morphology/BinaryErodeImageFilter | Erode a binary image]] || {{ITKDoxygenURL|BinaryErodeImageFilter}} ||
|-
| [[ITK/Examples/Morphology/BinaryDilateImageFilter | Dilate a binary image]] || {{ITKDoxygenURL|BinaryDilateImageFilter}} ||
|-
| [[ITK/Examples/Morphology/GrayscaleDilateImageFilter | Dilate a grayscale image]] || {{ITKDoxygenURL|GrayscaleDilateImageFilter}} ||
|-
| [[ITK/Examples/Morphology/GrayscaleErodeImageFilter | Erode a grayscale image]] || {{ITKDoxygenURL|GrayscaleErodeImageFilter}} ||
|-
| [[ITK/Examples/Morphology/FlatStructuringElement | Erode a binary image using a flat (box) structuring element]] || {{ITKDoxygenURL|FlatStructuringElement}} ||
|}
 
==Curves==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Curves/ContourMeanDistanceImageFilter | Compute the mean distance between all points of two curves]] || {{ITKDoxygenURL|ContourMeanDistanceImageFilter}} ||
|}
 
==Spectral Analysis==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/SpectralAnalysis/VnlFFTRealToComplexConjugateImageFilter | Compute the FFT of an image]] || {{ITKDoxygenURL|VnlFFTRealToComplexConjugateImageFilter}} ||
|-
| [[ITK/Examples/SpectralAnalysis/CrossCorrelationInFourierDomain | Compute the cross-correlation of two images in the Fourier domain]] || {{ITKDoxygenURL|VnlFFTRealToComplexConjugateImageFilter}}{{ITKDoxygenURL|VnlFFTComplexConjugateToRealImageFilter}} ||  ||
|-
| [[ITK/Examples/SpectralAnalysis/RealAndImaginaryToComplexImageFilter | Convert a real image and an imaginary image to a complex image]] || {{ITKDoxygenURL|RealAndImaginaryToComplexImageFilter}} ||
|}
 
==Utilities==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Utilities/RandomPermutation | Permute a sequence of indices]] || {{ITKDoxygenURL|ImageRandomNonRepeatingConstIteratorWithIndex}} ||
|-
| [[ITK/Examples/Utilities/MersenneTwisterRandomVariateGenerator | Random number generator]] || {{ITKDoxygenURL|MersenneTwisterRandomVariateGenerator}} ||
|-
| [[ITK/Examples/Utilities/JetColormapFunctor | Map scalars into a jet colormap]] || {{ITKDoxygenURL|JetColormapFunctor}} ||
|-
| [[ITK/Examples/Utilities/SimpleFilterWatcher | Monitor a filter]] || {{ITKDoxygenURL|SimpleFilterWatcher}} || See debug style information.
|-
| [[ITK/Examples/Utilities/TimeProbe | Time probe]] || {{ITKDoxygenURL|TimeProbe}} || Compute the time between points in code.
|-
| [[ITK/Examples/Utilities/ObserveEvent | Observe an event]] || {{ITKDoxygenURL|Command}} ||
|-
| [[ITK/Examples/Utilities/VectorContainer | Vector container]] || {{ITKDoxygenURL|VectorContainer}} ||
|-
| [[ITK/Examples/Utilities/BoundingBox | Bounding box]] || {{ITKDoxygenURL|BoundingBox}} ||
|}
 
==Statistics==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Statistics/GaussianDistribution | Create a Gaussian distribution]] || {{ITKDoxygenURL|GaussianDistribution}} ||
|-
| [[ITK/Examples/Statistics/SampleToHistogramFilter | Create a histogram from a list of sample measurements]] || {{ITKDoxygenURL|SampleToHistogramFilter}} ||
|-
| [[ITK/Examples/Statistics/ListSample | Create a list of sample measurements]] || {{ITKDoxygenURL|ListSample}} ||
|-
| [[ITK/Examples/Statistics/ImageToListSampleAdaptor | Create a list of samples from an image without duplicating the data]] || {{ITKDoxygenURL|ImageToListSampleAdaptor}} ||
|-
| [[ITK/Examples/Statistics/MembershipSample | Create a list of samples with associated class IDs]] || {{ITKDoxygenURL|MembershipSample}} ||
|-
| [[ITK/Examples/Statistics/ExpectationMaximizationMixtureModelEstimator_2D | 2D Gaussian Mixture Model Expectation Maximization]] || {{ITKDoxygenURL|ExpectationMaximizationMixtureModelEstimator}} || EM
|-
| [[ITK/Examples/Statistics/KdTreeBasedKMeansClustering_1D | 1D KMeans Clustering]] || {{ITKDoxygenURL|KdTreeBasedKMeansClustering}} ||
|-
| [[ITK/Examples/Statistics/KdTreeBasedKMeansClustering_3D | 3D KMeans Clustering]] || {{ITKDoxygenURL|KdTreeBasedKMeansClustering}} ||
|-
| [[ITK/Examples/Statistics/ScalarImageKmeansImageFilter | Cluster the pixels in a greyscale image]] || {{ITKDoxygenURL|ScalarImageKmeansImageFilter}} ||
 
|}
 
==Spatial Objects==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/SpatialObjects/SpatialObjectToImageFilter | Convert a spatial object to an image ]] || {{ITKDoxygenURL|SpatialObjectToImageFilter}} ||
|-
| [[ITK/Examples/SpatialObjects/EllipseSpatialObject | Ellipse ]] || {{ITKDoxygenURL|EllipseSpatialObject}} ||
|-
| [[ITK/Examples/SpatialObjects/LineSpatialObject| Line spatial object]] || {{ITKDoxygenURL|LineSpatialObject}}, {{ITKDoxygenURL|LineSpatialObjectPoint}} || Specify a piecewise-linear object by specifying points along the line.
|-
| [[ITK/Examples/SpatialObjects/BlobSpatialObject | Blob ]] || {{ITKDoxygenURL|BlobSpatialObject}} ||
|}
 
==Inspection==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Inspection/CheckerBoardImageFilter | Combine two images by alternating blocks of a checkerboard pattern]] || {{ITKDoxygenURL|CheckerBoardImageFilter}} ||
|-
| [[ITK/Examples/Inspection/PixelInspection | Printing a pixel value to the console]] || [http://www.itk.org/Doxygen/html/classitk_1_1Image.html#ad424c945604f339130b4ffe81b99738eGetPixel GetPixel] ||
|}
 
==Image Registration==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Registration/ImageRegistrationMethod | A basic global registration of two images ]] || {{ITKDoxygenURL|ImageRegistrationMethod}}, {{ITKDoxygenURL|TranslationTransform}} || Translation only transform.
|-
| [[ITK/Examples/Registration/ImageRegistrationMethodAffine | A global registration of two images ]] || {{ITKDoxygenURL|ImageRegistrationMethod}}, {{ITKDoxygenURL|AffineTransform}} || Full affine transform.
|-
| [[ITK/Examples/Registration/ImageRegistrationMethodBSpline | A global registration of two images ]] || {{ITKDoxygenURL|ImageRegistrationMethod}}, {{ITKDoxygenURL|BSplineDeformableTransform}} || BSpline transform.
|-
| [[ITK/Examples/Registration/MutualInformation | Mutual Information ]] || {{ITKDoxygenURL|MutualInformationImageToImageMetric}}, {{ITKDoxygenURL|TranslationTransform}}  || Global registration by maximizing the mutual information and using a translation only transform
|-
| [[ITK/Examples/Registration/MutualInformationAffine | Mutual Information Affine]] || {{ITKDoxygenURL|MutualInformationImageToImageMetric}}, {{ITKDoxygenURL|AffineTransform}}  || Global registration by maximizing the mutual information and using an affine transform
|}
 
==Image Segmentation==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Segmentation/MeanShiftClustering | Mean shift clustering]] ||  ||
|-
| [[ITK/Examples/Segmentation/kMeansClustering | KMeans Clustering]] || ||
|-
| [[ITK/Examples/Segmentation/MultiphaseChanAndVeseSparseFieldLevelSetSegmentation | Multiphase Chan And Vese Sparse Field Level Set Segmentation]] ||  itkScalarChanAndVeseSparseLevelSetImageFilter, itkScalarChanAndVeseLevelSetFunction ||
|}
 
==Meshes==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Meshes/Decimation | Decimation]] ||  ||
|-
| [[ITK/Examples/Meshes/AddPointsAndEdges | Add points and edges]] || ||
|-
| [[ITK/Examples/Meshes/QuadEdgeMeshNormalFilter | Compute normals of a mesh]] || {{ITKDoxygenURL|QuadEdgeMeshNormalFilter}} ||
|}
 
==Wish List==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/WishList/ImageProcessing/ColorNormalizedCorrelation| Color Normalized Correlation]] || {{ITKDoxygenURL|NormalizedCorrelationImageFilter}}  ||
|-
| [[ITK/Examples/WishList/SpatialObjects/ContourSpatialObject| ContourSpatialObject]] || {{ITKDoxygenURL|ContourSpatialObject}}  ||
|-
| [[ITK/Examples/Broken/SimpleOperations/MetaDataDictionary| Store non-pixel associated data in an image]] || {{ITKDoxygenURL|MetaDataDictionary}} ||
|-
| [[ITK/Examples/Segmentation/LevelSets| Level Sets]] || ||
|-
| [[ITK/Examples/Segmentation//RegionGrowing| Region Growing]] || ||
|-
| [[ITK/Examples/Meshes/Subdivision| Mesh subdivision]] || ||
|-
| [[ITK/Examples/Segmentation/OtsuThresholdImageFilter| Separate foreground and background using Otsu's method]] || {{ITKDoxygenURL|OtsuThresholdImageFilter}} ||
|-
| [[ITK/Examples/Segmentation/SimpleContourExtractorImageFilter| Extract contours]] || {{ITKDoxygenURL|SimpleContourExtractorImageFilter}} ||
|-
| [[ITK/Examples/Conversions/RGBToVectorImageAdaptor| Present an image of RGBPixel pixels as an image of vectors]] || {{ITKDoxygenURL|RGBToVectorImageAdaptor}} ||
|}
 
==Included in the ITK Repository==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Included/Registration| Image registration]] || ||
|}
 
==Matlab==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Matlab/MatlabToITK| Write data from Matlab in a format readable by ITK]] || ||
|-
| [[ITK/Examples/Matlab/ITKToMatlab| Write data from ITK in a format readable by Matlab]] || ||
|}
 
==Developer Examples==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Developer/ImageSource | Produce an image programmatically.]] || {{ITKDoxygenURL|ImageSource}} || Nothing in, image out.
|-
| [[ITK/Examples/Developer/ImageFilter | Filter an image]] || {{ITKDoxygenURL|ImageToImageFilter}} || Image in, same type of image out.
|-
| [[ITK/Examples/Developer/ImageFilterMultipleInputs | Write a filter with multiple inputs of the same type.]] || {{ITKDoxygenURL|ImageToImageFilter}} || Two images in (same type), same type of image out.
|-
| [[ITK/Examples/Developer/ImageFilterMultipleInputsDifferentType | Write a filter with multiple inputs of different types.]] || {{ITKDoxygenURL|ImageToImageFilter}} || Two images in (different type), image (same type as first input) out.
|-
| [[ITK/Examples/Developer/ImageFilterMultipleOutputs | Write a filter with multiple outputs of the same type.]] || {{ITKDoxygenURL|ImageToImageFilter}} || Images in, two images out (same type as first input).
|}
 
==Problems==
===Small Problems===
{{ITKExamplesTable}}
|-
| [[ITK/Examples/WishList/Iterators/FloodFillIterator | Traverse a region using a flood fill iterator]] || {{ITKDoxygenURL|FloodFilledSpatialFunctionConditionalIterator}} || How to do this?
|-
| [[ITK/Examples/Broken/ImageProcessing/GradientOfVectorImage | Compute the gradient of a vector image]] || {{ITKDoxygenURL|GradientImageFilter}} || How to do this?
|-
| [[ITK/Examples/Broken/Statistics/GaussianMixtureModelComponent | Compute distributions of image pixels using GMM EM]] || {{ITKDoxygenURL|GaussianMixtureModelComponent}} ||
|-
| [[ITK/Examples/Broken/Statistics/ExpectationMaximizationMixtureModelEstimator_Image | Compute distributions of image pixels using GMM EM]] || {{ITKDoxygenURL|ExpectationMaximizationMixtureModelEstimator}} ||
|-
| [[ITK/Examples/Broken/Statistics/ExpectationMaximizationMixtureModelEstimator_1D | Compute distributions of samples using GMM EM]] || {{ITKDoxygenURL|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?)
|-
| [[ITK/Examples/Broken/EdgesAndGradients/CannyEdgeDetectionImageFilter | Find edges in an image]] || {{ITKDoxygenURL|CannyEdgeDetectionImageFilter}} || How to set a reasonable Threshold for the output edges?
|-
| [[ITK/Examples/Broken/SimpleOperations/VariableLengthVector | Variable length vector ]] || {{ITKDoxygenURL|VariableLengthVector}} || main() works properly, but neither conversion seems to work.
|-
| [[ITK/Examples/Broken/Statistics/ImageToHistogramFilter | Compute the histogram of an image]] || {{ITKDoxygenURL|Statistics_1_1ImageToHistogramFilter}} || The last entry of the red histogram should contain several values, but it is 0?
|-
| [[ITK/Examples/Broken/Statistics/KmeansModelEstimator | Classifying pixels using KMeans]] || {{ITKDoxygenURL|KmeansModelEstimator}} || How to apply the labels of the filter to the input image?
|-
| [[ITK/Examples/Broken/Images/RegionGrowImageFilter | Basic region growing]] || {{ITKDoxygenURL|RegionGrowImageFilter}} || Just getting started with demo...
|-
| [[ITK/Examples/Broken/Images/ConnectedThresholdImageFilter | Find connected components in an image]] || {{ITKDoxygenURL|ConnectedThresholdImageFilter}} || Just need to finish it.
|-
| [[ITK/Examples/Broken/Images/ConvertPixelBuffer | Convert an image from one type to another]] || {{ITKDoxygenURL|ConvertPixelBuffer}} ||
|-
| [[ITK/Examples/Broken/Images/NeighborhoodOperatorImageFilter | Apply a function to every pixel with access to its neighborhood]] || {{ITKDoxygenURL|NeighborhoodOperatorImageFilter}} ||
|-
| [[ITK/Examples/Broken/Images/NeighborhoodOperatorImageFunction | Apply a function to every pixel with access to its neighborhood]] || {{ITKDoxygenURL|NeighborhoodOperatorImageFunction}} ||
|-
| [[ITK/Examples/Broken/Images/InPlace | In-place filtering of an image]] || {{ITKDoxygenURL|InPlaceImageFilter}} || This only works for filters which derive from itkInPlaceImageFilter
|-
| [[ITK/Examples/Broken/Images/MirrorPadImageFilter | Pad an image]] || {{ITKDoxygenURL|MirrorPadImageFilter}} || Not sure how to specify the final output size/extent. The documentation should be improved.
|-
| [[ITK/Examples/Broken/Images/WrapPadImageFilter | Pad an image by wrapping]] || {{ITKDoxygenURL|WrapPadImageFilter}} || Not sure how to specify the final output size/extent. The documentation should be improved.
|-
| [[ITK/Examples/Broken/Images/FlipImageFilter | Flip an image over specified axes]] || {{ITKDoxygenURL|FlipImageFilter}} || The axes specification is not quite right - warning: address of axes always evaluates true
|-
| [[ITK/Examples/Broken/Images/VTKImageToImageFilter | Convert a VTK image to an ITK image]] || {{ITKDoxygenURL|VTKImageToImageFilter}} || Seems to expect an input image with only 1 component? (i.e. greyscale)
|-
| [[ITK/Examples/Broken/Images/ShapedNeighborhoodIterator | Iterate over a region of an image with a shaped neighborhood]] || {{ITKDoxygenURL|ShapedNeighborhoodIterator}} || Crashes when initializing the iterator loop?
|}
 
===Big Problems===
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Broken/Images/JoinImageFilter | Join images, stacking their components]] || {{ITKDoxygenURL|JoinImageFilter}} || How to convert the vector image produced by the joinFilter to a standard image?
|-
| [[ITK/Examples/Broken/Images/MeanSquaresImageToImageMetric | Find the best position of the moving image in the fixed image.]] || {{ITKDoxygenURL|MeanSquaresImageToImageMetric}} || Output (0,0) is incorrect.
|-
| [[ITK/Examples/Broken/Images/GradientImageFilter | Compute and display the gradient of an image]] || {{ITKDoxygenURL|GradientImageFilter}} || Blank output.
|}

Latest revision as of 00:04, 8 June 2019

Warning: The media wiki content on this page is no longer maintained. The examples presented on the https://itk.org/Wiki/* pages likely require ITK version 4.13 or earlier releases. In many cases, the examples on this page no longer conform to the best practices for modern ITK versions. Recent examples that are up to date with ITK version 5 can be found at ITK Examples