ITK/Examples: Difference between revisions

From KitwarePublic
< ITK
Jump to navigationJump to search
(Outdated examples)
 
(811 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/DistanceBetweenPoints | Distance between two points]] || {{ITKDoxygenURL|Point}} ||
|-
| [[ITK/Examples/CreateVector | Create a vector]] || {{ITKDoxygenURL|Vector}} ||
|-
| [[ITK/Examples/CovariantVector | Create a covariant vector]] || {{ITKDoxygenURL|CovariantVector}} ||
|-
| [[ITK/Examples/VariableLengthVector | Variable length vector ]] || {{ITKDoxygenURL|VariableLengthVector}} || main() works properly, but neither conversion seems to work.
|-
| [[ITK/Examples/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}} ||
|}
 
==Image Basics==
{{ITKExamplesTable}}
|-
| [[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/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/ImageFileReader | Read an image]] || {{ITKDoxygenURL|ImageFileReader}} ||
|-
| [[ITK/Examples/Images/RegionOfInterestImageFilter | Extract a portion of an image (region of interest)]] || {{ITKDoxygenURL|RegionOfInterestImageFilter}} ||
|-
| [[ITK/Examples/Images/ImageFileWriter | Write an image]] || {{ITKDoxygenURL|ImageFileWriter}} ||
|-
| [[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/Broken/Images/BinaryErodeImageFilter | Erode a binary image]] || {{ITKDoxygenURL|BinaryErodeImageFilter}} || Shouldn't the output be "cleaner"? That is, solid regions should remain solid.
|-
| [[ITK/Examples/Images/BinaryDilateImageFilter | Dilate a binary image]] || {{ITKDoxygenURL|BinaryDilateImageFilter}} || Wait until BinaryErodeImageFilter is working.
|-
| [[ITK/Examples/Images/GrayscaleDilateImageFilter | Dilate a grayscale image]] || {{ITKDoxygenURL|GrayscaleDilateImageFilter}} || Wait until BinaryErodeImageFilter is working.
|-
| [[ITK/Examples/Images/GrayscaleErodeImageFilter | Erode a grayscale image]] || {{ITKDoxygenURL|GrayscaleErodeImageFilter}} || Wait until BinaryErodeImageFilter is working.
|-
| [[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/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.
|}
 
[[ITK/Examples/QuickView | Easily display a set of images]]

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