ITK/Examples: Difference between revisions

From KitwarePublic
< ITK
Jump to navigationJump to search
(Outdated examples)
 
(769 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/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}} ||
|-
| [[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/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/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/CurvatureFlowImageFilterType | Smooth an image using curvature flow]] || {{ITKDoxygenURL|CurvatureFlowImageFilterType}} ||
|-
| [[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/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/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/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.
|}
 
=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}} ||
|}
 
=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}} ||
|-
| [[ITK/Examples/Statistics/ScalarImageKmeansImageFilter | Cluster the pixels in a greyscale image]] || {{ITKDoxygenURL|ScalarImageKmeansImageFilter}} ||
 
|}
 
=Developer Examples=
{{ITKExamplesTable}}
|-
| [[ITK/Examples/Developer/ImageSource | Produce an image with a filter]] || {{ITKDoxygenURL|ImageSource}} ||
|}
 
=Wish List=
{{ITKExamplesTable}}
|}
 
=Problems=
==Small Problems==
{{ITKExamplesTable}}
|-
| [[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