|
|
(44 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| {{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. | | {{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. |
|
| |
|
| Recent examples that are up to date with ITK version 5 can be found at [https://itk.org/ITKExamples ITK Examples]}} | | Recent examples that are up to date with ITK version 5 can be found at [https://itk.org/ITKExamples ITK Examples]}} |
| | |
| ==CMake Techniques==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/CMake/CheckForModule | Check if a specific module is present]] || ||
| |
| |-
| |
| | [[ITK/Examples/CMake/CheckForITK4 | Check for ITK4]] || ||
| |
| |}
| |
| | |
| ==Visualization==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Visualization/QuickView | Display an image]] || || QuickView
| |
| |}
| |
| | |
| ==Simple Operations==
| |
| {{ITKExamplesTable}}
| |
| |}
| |
| | |
| ==Mathematical Operations==
| |
| {{ITKExamplesTable}}
| |
| |}
| |
| | |
| ==Trigonometric Filters==
| |
| {{ITKExamplesTable}}
| |
| |}
| |
| | |
| ==Image Functions==
| |
| {{ITKExamplesTable}}
| |
| |}
| |
| | |
| ==Input/Output (IO)==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/IO/ImageToVTKImageFilter | Display an ITK image]] || {{ITKDoxygenURL|ImageToVTKImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/IO/VolumeFromSlices | Create a 3D volume from a series of 2D images]] || {{ITKDoxygenURL|ImageSeriesReader}} || Uses NumericSeriesFileNames to generate a list of file names
| |
| |}
| |
| | |
| ==DICOM==
| |
| {{ITKExamplesTable}}
| |
| |}
| |
| | |
| ==Blob Detection, Labeling, and Properties==
| |
| {{ITKExamplesTable}}
| |
| |||
| |
| |}
| |
| | |
| ==Iterating Over (Traversing) An Image==
| |
| {{ITKExamplesTable}}
| |
| |}
| |
| | |
| ==Image Edges, Gradients, and Derivatives==
| |
| {{ITKExamplesTable}}
| |
| |}
| |
| | |
| ==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}} ||
| |
| |}
| |
| | |
| ==Statistics==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Statistics/ImageToHistogramFilterRGB | Compute a histogram from an RGB image.]] || {{ITKDoxygenURL|ImageToHistogramFilterRGB}} ||
| |
| |-
| |
| | [[ITK/Examples/Statistics/HistogramToImageFilterVectorImage | Compute a histogram from a itk::VectorImage.]] || {{ITKDoxygenURL|ImageToHistogramFilterVectorImage}} ||
| |
| |-
| |
| | [[ITK/Examples/Statistics/KdTreeBasedKMeansClustering_1D | 1D KMeans Clustering]] || {{ITKDoxygenURL|KdTreeBasedKMeansClustering}} ||
| |
| |-
| |
| | [[ITK/Examples/Statistics/KdTreeBasedKMeansClustering_3D | 3D KMeans Clustering]] || {{ITKDoxygenURL|KdTreeBasedKMeansClustering}} ||
| |
| |-
| |
| | [[ITK/Examples/Statistics/KdTreeBasedKmeansEstimator | Compute kmeans clusters]] || {{ITKDoxygenURL|KdTreeBasedKmeansEstimator}} ||
| |
| |-
| |
| | [[ITK/Examples/Statistics/TextureFeatures | Extract texture features using GLCM]] || {{ITKDoxygenURL|ScalarImageToCooccurrenceMatrixFilter}} ||
| |
| |}
| |
| | |
| ==Spatial Objects==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/SpatialObjects/PlaneSpatialObject| Plane spatial object]] || {{ITKDoxygenURL|PlaneSpatialObject}} ||
| |
| |}
| |
| | |
| ==Inspection==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[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/DeformationFieldTransform | Register one image to another using manually specified landmarks ]] || {{ITKDoxygenURL|DeformationFieldTransform}} ||
| |
| |}
| |
| | |
| ==Image Segmentation==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Segmentation/MeanShiftClustering | Mean shift clustering]] || {{ITKDoxygenURL|SampleMeanShiftClusteringFilter}} ||
| |
| | |
| |}
| |
| | |
| ==Meshes==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Meshes/LoopTriangleCellSubdivision | Subdivide an itk::QuadEdgeMesh]] || {{ITKDoxygenURL|LoopTriangleCellSubdivisionQuadEdgeMeshFilter}} || Perform a loop triangle cell subdivision on a spherical quad edge mesh.
| |
| |}
| |
| | |
| ==Need Demo==
| |
| This section consists of examples which compile and work, but a good demonstration image must be selected and added.
| |
| {{ITKExamplesTable}}
| |
| |}
| |
| | |
| ==Wish List==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Registration/BlockMatchingImageFilter | Match feature points (hierarchically?)]] || {{ITKDoxygenURL|BlockMatchingImageFilter}} || Segfault.
| |
| |-
| |
| | [[ITK/Examples/IO/itkVtkImageConvertDICOM | Uses a custom user matrix to align the image with DICOM physical space]] || {{ITKDoxygenURL|ImageToVTKImageFilter}} || Need demo image.
| |
| |-
| |
| | [[ITK/Examples/Segmentation/EstimatePCAModel | Compute a PCA shape model from a training sample]] || {{ITKDoxygenURL|ImagePCAShapeModelEstimator}} ||
| |
| Estimate the principal modes of variation of a shape from a training sample. Useful for shape guide segmentation. Need example input files and arguments.
| |
| |-
| |
| | [[ITK/Examples/Segmentation/MultiphaseChanAndVeseSparseFieldLevelSetSegmentation | Multiphase Chan And Vese Sparse Field Level Set Segmentation]] || {{ITKDoxygenURL|ScalarChanAndVeseSparseLevelSetImageFilter}}, {{ITKDoxygenURL|ScalarChanAndVeseLevelSetFunction}} || Need example input files and arguments.
| |
| |-
| |
| | [[ITK/Examples/Segmentation/SinglephaseChanAndVeseSparseFieldLevelSetSegmentation | Single-phase Chan And Vese Sparse Field Level Set Segmentation]] || {{ITKDoxygenURL|ScalarChanAndVeseSparseLevelSetImageFilter}}, {{ITKDoxygenURL|ScalarChanAndVeseLevelSetFunction}} || Need example input files and arguments.
| |
| |-
| |
| | [[ITK/Examples/Segmentation/kMeansClustering | KMeans Clustering]] || || Need example input files and arguments.
| |
| |-
| |
| | [[ITK/Examples/Segmentation/SinglephaseChanAndVeseDenseFieldLevelSetSegmentation | Single-phase Chan And Vese Dense Field Level Set Segmentation]] || {{ITKDoxygenURL|ScalarChanAndVeseDenseLevelSetImageFilter}}, {{ITKDoxygenURL|ScalarChanAndVeseLevelSetFunction}} || Need example input files and arguments.
| |
| |-
| |
| | [[ITK/Examples/WishList/Pipeline/DisconnectPipeline | DisconnectPipeline]] ||
| |
| |-
| |
| | [[ITK/Examples/WishList/Iterators/ConditionalConstIterator | ConditionalConstIterator]] || {{ITKDoxygenURL|ConditionalConstIterator}} ||
| |
| |-
| |
| | [[ITK/Examples/WishList/Statistics/ScalarImageToTextureFeaturesFilter | Compute texture features]] || [http://www.itk.org/Doxygen/html/classitk_1_1Statistics_1_1ScalarImageToTextureFeaturesFilter.html ScalarImageToTextureFeaturesFilter] || How to interpret the output?
| |
| |-
| |
| | [[ITK/Examples/WishList/VectorImages/VectorImageResampleImageFilter | Resample an itk::VectorImage]] || ||
| |
| |-
| |
| | [[ITK/Examples/WishList/Statistics/MaskedImageToHistogramFilter | Compute the histogram of a masked region of an image]] || {{ITKDoxygenURL|MaskedImageToHistogramFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/WishList/PointSet/BSplineScatteredDataPointSetToImageFilter | Fit a spline to a point set]] || {{ITKDoxygenURL|BSplineScatteredDataPointSetToImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/WishList/Morphology/BinaryPruningImageFilter | BinaryPruningImageFilter]] || {{ITKDoxygenURL|BinaryPruningImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Broken/Statistics/GaussianMixtureModelComponent | Compute distributions of image pixels using GMM EM]] || {{ITKDoxygenURL|GaussianMixtureModelComponent}} ||
| |
| |-
| |
| | [[ITK/Examples/WishList/LevenbergMarquart| LevenbergMarquart]] || ||
| |
| |-
| |
| | [[ITK/Examples/WishList/IterativeClosestPoints| IterativeClosestPoints]] || ||
| |
| |-
| |
| | [[ITK/Examples/WishList/Operators/AllOperators| Demonstrate all operators]] || {{ITKDoxygenURL|NeighborhoodOperator}} ||
| |
| |-
| |
| | [[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/Segmentation/OtsuThresholdImageFilter| Separate foreground and background using Otsu's method]] || {{ITKDoxygenURL|OtsuThresholdImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Segmentation/SimpleContourExtractorImageFilter| Extract contours from an image]] || {{ITKDoxygenURL|SimpleContourExtractorImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Conversions/RGBToVectorImageAdaptor| Present an image of RGBPixel pixels as an image of vectors]] || {{ITKDoxygenURL|RGBToVectorImageAdaptor}} ||
| |
| |-
| |
| | [[ITK/Examples/Conversions/HoughTransform2DCirclesImageFilter| HoughTransform2DCirclesImageFilter]] || {{ITKDoxygenURL|HoughTransform2DCirclesImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Conversions/HoughTransform2DLinesImageFilter| HoughTransform2DLinesImageFilter]] || {{ITKDoxygenURL|HoughTransform2DLinesImageFilter}} ||
| |
| |-
| |
| | [[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]] || ||
| |
| |-
| |
| | [[ITK/Examples/WishList/ImageProcessing/EdgePotentialImageFilter| Compute edge potential]] ||{{ITKDoxygenURL|EdgePotentialImageFilter}} ||
| |
| |}
| |
| | |
| ==Included in the ITK Repository==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Included/Registration| Image registration]] || ||
| |
| |}
| |
| | |
| ==Matlab==
| |
| {{ITKExamplesTable}}
| |
| | |
| |}
| |
| | |
| ==Developer Examples==
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Developer/Exceptions | Throw an exception]] || ||
| |
| |-
| |
| | [[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/InplaceImageFilter | Filter an image without copying its data]] || {{ITKDoxygenURL|InPlaceImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Developer/MultiThreadedImageFilter | Filter an image using multiple threads]] || {{ITKDoxygenURL|ImageToImageFilter}} ||
| |
| |-
| |
| | [[ITK/Examples/Developer/OilPaintingImageFilter | Multi-threaded oil painting image filter]] || {{ITKDoxygenURL|ImageToImageFilter}} and {{ITKDoxygenURL|MinimumMaximumImageCalculator}} || A simple multi-threaded scenario (oil painting artistic filter). You can also use this class as-is (copy .h and .txx files into your project and use them).
| |
| |-
| |
| | [[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).
| |
| |-
| |
| | [[ITK/Examples/Developer/ImageFilterMultipleOutputsDifferentType | Write a filter with multiple outputs of different types.]] || {{ITKDoxygenURL|ImageToImageFilter}} || Images in, two images out (different types).
| |
| |-
| |
| | [[ITK/Examples/Developer/SetGetMacro | Get or set a member variable of an ITK class.]] || || SetMacro, GetMacro
| |
| |-
| |
| | [[ITK/Examples/Developer/OutputMacros | Output an error, a warning, or debug information.]] || || DebugMacro, ErrorMacro, WarningMacro
| |
| |-
| |
| | [[ITK/Examples/Developer/Minipipeline | MiniPipeline]] || ||
| |
| |}
| |
| | |
| ==Problems==
| |
| ===Small Problems===
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[ITK/Examples/Statistics/ImageKmeansModelEstimator | Compute kmeans clusters of pixels in an image]] || {{ITKDoxygenURL|ImageKmeansModelEstimator}} || Segfault.
| |
| |-
| |
| | [[ITK/Examples/WishList/Iterators/FloodFilledImageFunctionConditionalIterator | Iterate over an image starting at a seed and following a rule for connectivity decisions]] || {{ITKDoxygenURL|FloodFilledImageFunctionConditionalIterator}} ||
| |
| |-
| |
| | [[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/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/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/InPlace | In-place filtering of an image]] || {{ITKDoxygenURL|InPlaceImageFilter}} || This only works for filters which derive from itkInPlaceImageFilter
| |
| |-
| |
| | [[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)
| |
| |}
| |
| | |
| ===Big Problems===
| |
| {{ITKExamplesTable}}
| |
| |-
| |
| | [[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 on the screen (the filter works fine). There should be a "DisplayVectorImage" added to itkQuickView that draws vector glyphs at specified pixels of an image.
| |
| |}
| |