ITK/Examples: Difference between revisions

From KitwarePublic
< ITK
Jump to navigationJump to search
(Outdated examples)
 
(689 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!


==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.vtk.org/Wiki/images/e/e6/ITK_Examples_Iowa_Meeting_2010_11-8-2010.odp Official announcement]
 
==Simple Operations==
{{ITKExamplesTable}}
|-
| [[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/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
|-
| [[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}} ||
|}
 
==Image Processing==
{{ITKExamplesTable}}
|-
| [[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 compoennts) from three scalar images]] || {{ITKDoxygenURL|Compose3DCovariantVectorImageFilter}} ||
|-
| [[ITK/Examples/ImageProcessing/NthElementImageAdaptor | Extract a component of a vector image]] || {{ITKDoxygenURL|NthElementImageAdaptor}} ||
|-
| [[ITK/Examples/ImageProcessing/ProcessingNthImageElement | Process the nth component/element of a vector image]] || {{ITKDoxygenURL|NthElementImageAdaptor}} ||
|-
| [[ITK/Examples/ImageProcessing/ImageAdaptorExtractVectorComponent | Extract a component of a vector image]] || {{ITKDoxygenURL|ImageAdaptorExtractVectorComponent}} ||
|-
| [[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}} ||
|-
| [[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}} || Rotate the vectors in an image.
|-
| [[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/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}} ||
 
|}
 
==Iterating Over (Traversing) An Image==
{{ITKExamplesTable}}
|-
| [[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/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}} ||
|-
| [[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}} ||
|}
 
 
==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}} ||  ||
|}
 
==Utilities==
{{ITKExamplesTable}}
|-
| [[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.
|}
 
==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}} ||
|}
 
==Inspection==
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Inspection/CheckerBoardImageFilter | Combine two images by alternating blocks of a checkerboard pattern]] || {{ITKDoxygenURL|CheckerBoardImageFilter}} ||
|}
 
==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/Segmentation/LineSpatialObject| Line spatial object]] || {{ITKDoxygenURL|LineSpatialObject}}, {{ITKDoxygenURL|LineSpatialObjectPoint}} ||
|-
| [[ITK/Examples/WishList/IntensityWindowingImageFilter| IntensityWindowingImageFilter]] || {{ITKDoxygenURL|IntensityWindowingImageFilter}}  ||
|-
| [[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/Broken/ImageProcessing/GradientOfVectorImage | Compute the gradient of a vector image]] || {{ITKDoxygenURL|GradientImageFilter}} || How to do this?
|-
| [[ITK/Examples/Broken/ImageProcessing/LaplacianImageFilter | Compute the Laplacian of an image]] || {{ITKDoxygenURL|GaussianMixtureModelComponent}} || Input image type must be double or float (probably should smooth before this anyway, so do this type conversion in the smoothing filter?
|-
| [[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|ImageToHistogramFilter}} || 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/ConstantPadImageFilter | Pad an image with a constant value]] || {{ITKDoxygenURL|ConstantPadImageFilter}} || Not sure how to specify the final output size/extent. The documentation should be improved.
|-
| [[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/ShrinkImageFilter | Shrink an image]] || {{ITKDoxygenURL|ShrinkImageFilter}} || Image doesn't seem to be shrunk?
|-
| [[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/NormalizedCorrelationImageFilter | Normalized correlation]] || {{ITKDoxygenURL|NormalizedCorrelationImageFilter}} || Output is all black?
|-
| [[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/TranslateAnImage | Translate an image]] || {{ITKDoxygenURL|TranslationTransform}}, {{ITKDoxygenURL|ResampleImageFilter}} || This example currently freezes.
|-
| [[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