|
|
(795 intermediate revisions by 22 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!
| |
|
| |
|
| ==Simple Operations==
| | Recent examples that are up to date with ITK version 5 can be found at [https://itk.org/ITKExamples ITK Examples]}} |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[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/VariableLengthVector | Variable length vector ]] || {{ITKDoxygenURL|VariableLengthVector}} || main() works properly, but neither conversion seems to work.
| |
| |-
| |
| | [[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}} ||
| |
| |}
| |
| | |
| ==Input/Output (IO)==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[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.
| |
| |}
| |
| | |
| ==Image Basics==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Images/Transparency | Make part of an image transparent]] || {{ITKDoxygenURL|RGBAPixel}} || Transparency, RGBA, alpha
| |
| |-
| |
| | [[ITK/Examples/Images/RegionIntersection | Determine if one region is fully inside another region]] || {{ITKDoxygenURL|ImageRegion}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/CropImageFilter | Crop an image]] || {{ITKDoxygenURL|CropImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/AbsImageFilter | Compute the absolute value of an image]] || {{ITKDoxygenURL|AbsImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/InvertIntensityImageFilter | Invert an image]] || {{ITKDoxygenURL|InvertIntensityImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/MaskImageFilter | Apply a mask to an image]] || {{ITKDoxygenURL|MaskImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/ImageDuplicator | Duplicate an image]] || {{ITKDoxygenURL|ImageDuplicator}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/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/Images/RandomImageSource | Produce an image of noise]] || {{ITKDoxygenURL|RandomImageSource}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/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/Images/BinaryThresholdImageFilter | Threshold an image]] || {{ITKDoxygenURL|BinaryThresholdImageFilter}} || The result is a binary image (inside the threshold region or outside the threshold region).
| |
| |-
| |
| | [[ITK/Examples/Images/UnaryFunctorImageFilter | Apply a custom operation to each pixel in an image]] || {{ITKDoxygenURL|UnaryFunctorImageFilter}} || Rotate the vectors in an image.
| |
| |-
| |
| | [[ITK/Examples/Images/MinimumMaximumImageCalculator | Find the minimum and maximum value (and the position of the value) in an image]] || {{ITKDoxygenURL|MinimumMaximumImageCalculator}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/AddImageFilter | Add two images together]] || {{ITKDoxygenURL|AddImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/SubtractImageFilter | Subtract two images]] || {{ITKDoxygenURL|SubtractImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/PasteImageFilter | Paste a part of one image into another image]] || {{ITKDoxygenURL|PasteImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/VectorImage | Create a vector image]] || {{ITKDoxygenURL|VectorImage}} || An image with an ND vector at each pixel
| |
| |-
| |
| | [[ITK/Examples/Images/MultiplyImageFilter | Multiply two images together]] || {{ITKDoxygenURL|MultiplyImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/RegionOfInterestImageFilter | Extract a portion of an image (region of interest)]] || {{ITKDoxygenURL|RegionOfInterestImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/CurvatureFlowImageFilterType | Smooth an image using curvature flow]] || {{ITKDoxygenURL|CurvatureFlowImageFilterType}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/RescaleIntensityImageFilter | Rescale the intensity values of an image to a specified range]] || {{ITKDoxygenURL|RescaleIntensityImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/SetPixels | Set specified pixels to specified values]] || {{ITKDoxygenURL|Image}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/ConnectedComponentImageFilter | Label connected components in a binary image]] || {{ITKDoxygenURL|ConnectedComponentImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/NormalizeImageFilter | Normalize an image]] || {{ITKDoxygenURL|NormalizeImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/CastImageFilter | Cast an image from one type to another]] || {{ITKDoxygenURL|CastImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/PermuteAxesImageFilter | Switch the axes of an image]] || {{ITKDoxygenURL|PermuteAxesImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/LinearInterpolateImageFunction | Linearly interpolate a position in an image]] || {{ITKDoxygenURL|LinearInterpolateImageFunction}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/ImageToVTKImageFilter | Display an ITK image]] || {{ITKDoxygenURL|ImageToVTKImageFilter}} ||
| |
| |}
| |
| | |
| ==Iterating Over (Traversing) An Image==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Images/NeighborhoodIterator | Iterate over a region of an image with a neighborhood (with write access)]] || {{ITKDoxygenURL|NeighborhoodIterator}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/ConstNeighborhoodIterator | Iterate over a region of an image with a neighborhood (without write access)]] || {{ITKDoxygenURL|ConstNeighborhoodIterator}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/ImageRegionIterator | Iterate over a region of an image (with write access)]] || {{ITKDoxygenURL|ImageRegionIterator}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/ImageRegionConstIterator | Iterate over a region of an image (without write access)]] || {{ITKDoxygenURL|ImageRegionConstIterator}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/ConstantBoundaryCondition | Make out of bounds pixels return a constant value]] || {{ITKDoxygenURL|ConstantBoundaryCondition}} ||
| |
| |}
| |
| | |
| ==Image Edges, Gradients, and Derivatives==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Images/DerivativeImageFilter | Compute the derivative of an image in a particular direction]] || {{ITKDoxygenURL|DerivativeImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/GradientMagnitudeRecursiveGaussianImageFilter | Find the gradient magnitude of the image first smoothed with a Gaussian kernel]] || {{ITKDoxygenURL|GradientMagnitudeRecursiveGaussianImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/RecursiveGaussianImageFilter | Find higher derivatives of an image]] || {{ITKDoxygenURL|RecursiveGaussianImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/CannyEdgeDetectionImageFilter | Find edges in an image]] || {{ITKDoxygenURL|CannyEdgeDetectionImageFilter}} || How to set a reasonable Threshold for the output edges?
| |
| |-
| |
| | [[ITK/Examples/Images/BinaryContourImageFilter | Extract the boundaries of connected regions in a binary image]] || {{ITKDoxygenURL|BinaryContourImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/GradientMagnitudeImageFilter | Compute the gradient magnitude image]] || {{ITKDoxygenURL|GradientMagnitudeImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/LaplacianRecursiveGaussianImageFilter | Compute the Laplacian of an image]] || {{ITKDoxygenURL|LaplacianRecursiveGaussianImageFilter}} ||
| |
| |}
| |
| | |
| ==Smoothing==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Images/MeanImageFilter | Mean filter an image]] || {{ITKDoxygenURL|MeanImageFilter}} || Replace each pixel by the mean of its neighborhood
| |
| |-
| |
| | [[ITK/Examples/Images/MedianImageFilter | Median filter an image]] || {{ITKDoxygenURL|MedianImageFilter}} || Replace each pixel by the median of its neighborhood
| |
| |-
| |
| | [[ITK/Examples/Images/DiscreteGaussianImageFilter | Smooth an image with a discrete Gaussian filter]] || {{ITKDoxygenURL|DiscreteGaussianImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/BinomialBlurImageFilter | Blur an image]] || {{ITKDoxygenURL|BinomialBlurImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/BilateralImageFilter | Bilateral filter an image]] || {{ITKDoxygenURL|BilateralImageFilter}} || Edge preserving smoothing.
| |
| |}
| |
| | |
| ==Morphology==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Images/BinaryErodeImageFilter | Erode a binary image]] || {{ITKDoxygenURL|BinaryErodeImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/BinaryDilateImageFilter | Dilate a binary image]] || {{ITKDoxygenURL|BinaryDilateImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/GrayscaleDilateImageFilter | Dilate a grayscale image]] || {{ITKDoxygenURL|GrayscaleDilateImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/GrayscaleErodeImageFilter | Erode a grayscale image]] || {{ITKDoxygenURL|GrayscaleErodeImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Images/FlatStructuringElement | Erode a binary image using a flat (box) structuring element]] || {{ITKDoxygenURL|FlatStructuringElement}} ||
| |
| |}
| |
| | |
| ==Missing==
| |
| {{ITKExamplesTable}}
| |
| |}
| |
| | |
| ==Spectral Analysis==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Images/VnlFFTRealToComplexConjugateImageFilter | Compute the FFT of an image]] || {{ITKDoxygenURL|VnlFFTRealToComplexConjugateImageFilter}} ||
| |
| |}
| |
| | |
| ==Small Problems==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[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}} || How do you specify the neighborhood?
| |
| |}
| |
| | |
| ==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.
| |
| |}
| |
| | |
| ==Statistics==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[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_2D | 2D KMeans Clustering]] || {{ITKDoxygenURL|KdTreeBasedKMeansClustering}} ||
| |
| |}
| |
| | |
| ==Developer Examples==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Developer/ImageSource | Produce an image with a filter]] || {{ITKDoxygenURL|ImageSource}} ||
| |
| |}
| |
| | |
| ==VTK Display==
| |
| [[ITK/Examples/QuickView | Easily display a set of images]]
| |