ITK/Examples: Difference between revisions
DVigneault (talk | contribs) |
DVigneault (talk | contribs) (→Meshes) |
||
Line 727: | Line 727: | ||
==Meshes== | ==Meshes== | ||
{{ITKExamplesTable}} | {{ITKExamplesTable}} | ||
|- | |||
| [[ITK/Examples/Meshes/ReadWrite | Read and Write a Mesh ]] || {{ITKDoxygenURL|MeshFileReader}} || Read and write an itk::Mesh using a variety of file formats. | |||
|- | |- | ||
| [[ITK/Examples/Meshes/Decimation | Decimation]] || || | | [[ITK/Examples/Meshes/Decimation | Decimation]] || || |
Revision as of 12:12, 14 May 2015
These are fully independent, compilable examples, developed with these goals in mind. There is significant overlap in the examples, but they are each intended to illustrate a different concept and be fully stand alone compilable. Please add examples in your areas of expertise! You can checkout the entire set of examples from this repository: https://github.com/InsightSoftwareConsortium/ITKWikiExamples
git clone https://github.com/InsightSoftwareConsortium/ITKWikiExamples.git ITKWikiExamples
About the Examples
ItkVtkGlue
ITK and VTK are very separate toolkits - ITK for image processing and VTK for data visualization. It is often convenient to use the two together - namely, to display an ITK image on the screen. The ITKVtkGlue module serves exactly this purpose. Also provided inside ItkVtkGlue is a QuickView class to allow a 2 line display of an ITK image.
Information for Wiki Examples Users
If you just want to use the Wiki Examples, go here. You will learn how to search for examples, build a few examples and build all of the examples.
Information for Wiki Examples Developers
If you want to contribute examples go here. You will learn how to add a new example and the guidelines for writing an example.
Information for Wiki Examples Administrators
If you are a Wiki Example Administrator or want to learn more about the process go here. You will learn how the Wiki Examples repository is organized, how the repository is synced to the wiki and how to add new topics, tests and regression baselines.
CMake Techniques
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Check if a specific module is present | ||
Check for ITK4 |
Visualization
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Display an image | QuickView |
Simple Operations
Mathematical Operations
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Create a covariant vector | CovariantVector | This is the object which should be used to represent a mathematical vector. |
Compute the norm of a covariant vector | CovariantVector | In-place and non-inplace norms. |
Matrix | Matrix | |
Matrix inverse | Matrix | |
Mathematical constant pi = 3.14 | Math | |
Dot product (inner product) of two vectors | Vector | |
Amoeba Optimization | AmoebaOptimizer | Optimizing a function using itk::AmoebaOptimizer. |
Trigonometric Filters
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Compute the sine of each pixel. | SinImageFilter | |
Compute the arctangent of each pixel. | Atan2ImageFilter |
Image Functions
Point Set
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Create a PointSet | PointSet | |
Read a PointSet | PointSet | |
Write a PointSet | PointSet | |
Get the bounding box of a PointSet | PointSet |
Input/Output (IO)
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Read an image file with an unknown number of components | ImageFileReader,VectorImage | |
Convert a C-style array to an itkImage | ImportImageFilter | |
Read an image file without knowing its type before hand | ImageFileReader | Dimensions (information) without reading data |
Write an image | ImageFileWriter | |
Read an image | ImageFileReader | |
Write a TIFF image | TIFFImageIO | This is a general demonstration of how to use a specific writer rather than relying on the ImageFileWriter to choose for you. |
Display an ITK image | ImageToVTKImageFilter | |
Write a transform to a file | TransformFileWriter | |
Read a transform from a file | TransformFileReader | |
Register a non-default transform with the transform factory | TransformFactory | |
Create a 3D volume from a series of 2D images | ImageSeriesReader | Uses NumericSeriesFileNames to generate a list of file names |
DICOM
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Resample a DICOM series | GDCMImageIO | Resample a DICOM series with user-specified spacing. |
Blob Detection, Labeling, and Properties
Correlation
Image Processing
Vector Images
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Compute the magnitude of each pixel in a vector image to produce a magnitude image | VectorMagnitudeImageFilter | |
Create a vector image | VectorImage | An image with an ND vector at each pixel |
Create a vector image from a collection of scalar images | ComposeImageFilter | Combine, layer |
View a component of a vector image as if it were a scalar image | VectorImageToImageAdaptor | |
Extract a component/channel of a vector image | VectorIndexSelectionCastImageFilter | This works with VectorImage as well as Image<Vector> |
Translate a vector image | TranslationTransform, VectorResampleImageFilter | |
Join images, stacking their components | JoinImageFilter | concatenate, channels |
Stack scalar images into a VectorImage | ImageToVectorImageFilter | |
NeighborhoodIterator on a VectorImage | VectorImage NeighborhoodIterator | |
Cast a VectorImage to another type of VectorImage | VectorImage |
Iterating Over (Traversing) An Image
Kernels
Image Edges, Gradients, and Derivatives
Smoothing
Morphology
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Erode a binary image | BinaryErodeImageFilter | |
Dilate a binary image | BinaryDilateImageFilter | |
Prune a binary image | BinaryPruningImageFilter | |
Opening a binary image | BinaryMorphologicalOpeningImageFilter | |
Closing a binary image | BinaryMorphologicalClosingImageFilter | |
Dilate a grayscale image | GrayscaleDilateImageFilter | |
Erode a grayscale image | GrayscaleErodeImageFilter | |
Erode a binary image using a flat (box) structuring element | FlatStructuringElement | |
Generate structuring elements with accurate area | FlatStructuringElement | In itkFlatStructuringElement, setting the foregroundHasAccurateArea flag to true will generate structuring elements with more accurate areas, which can be especially important when morphological operations are intended to remove or retain objects of particular sizes. |
An elliptical structuring element | BinaryBallStructuringElement |
Curves
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Compute the mean distance between all points of two curves | ContourMeanDistanceImageFilter | |
A data structure for a piece-wise linear curve | PolyLineParametricPath |
Spectral Analysis
Utilities
Statistics
Spatial Objects
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Convert a spatial object to an image | SpatialObjectToImageFilter | |
Ellipse | EllipseSpatialObject | Circle, dot |
Line spatial object | LineSpatialObject, LineSpatialObjectPoint | Specify a piecewise-linear object by specifying points along the line. |
Plane spatial object | PlaneSpatialObject | |
Blob | BlobSpatialObject |
Inspection
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Combine two images by alternating blocks of a checkerboard pattern | CheckerBoardImageFilter | |
Printing a pixel value to the console | GetPixel |
Metrics
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Compute the mean squares metric between two images | MeanSquaresImageToImageMetric |
Image Registration
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Warp one image to another using manually specified landmarks | WarpImageFilter | |
Rigidly register one image to another using manually specified landmarks | LandmarkBasedTransformInitializer | |
Register one image to another using manually specified landmarks | DeformationFieldTransform | |
A basic global registration of two images | ImageRegistrationMethod, TranslationTransform | Translation only transform. |
A global registration of two images | ImageRegistrationMethod, AffineTransform | Full affine transform. |
A global registration of two images | ImageRegistrationMethod, BSplineDeformableTransform | BSpline transform. |
Mutual Information | MutualInformationImageToImageMetric, TranslationTransform | Global registration by maximizing the mutual information and using a translation only transform |
Mutual Information Affine | MutualInformationImageToImageMetric, AffineTransform | Global registration by maximizing the mutual information and using an affine transform |
Image Segmentation
Meshes
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Read and Write a Mesh | MeshFileReader | Read and write an itk::Mesh using a variety of file formats. |
Decimation | ||
Add points and edges | ||
Compute normals of a mesh | QuadEdgeMeshNormalFilter | |
Planar parameterization of a mesh | ParameterizationQuadEdgeMeshFilter | Compute linear parameterization of a mesh homeomorphic to a disk on the plane |
Subdivide an itk::QuadEdgeMesh | LoopTriangleCellSubdivisionQuadEdgeMeshFilter | Perform a loop triangle cell subdivision on a spherical quad edge mesh. |
Convert an itk::Mesh to a vtkUnstructuredGrid | ||
Write an itk::Mesh to a vtp (vtkPolyData) file | VTKPolyDataWriter |
Need Demo
This section consists of examples which compile and work, but a good demonstration image must be selected and added.
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Adaptive histogram equalization | AdaptiveHistogramEqualizationImageFilter |
Wish List
Included in the ITK Repository
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Image registration |
Matlab
Example Name | ITK Classes Demonstrated | Description |
---|
Developer Examples
Problems
Small Problems
Big Problems
Example Name | ITK Classes Demonstrated | Description |
---|---|---|
Find the best position of the moving image in the fixed image. | MeanSquaresImageToImageMetric | Output (0,0) is incorrect. |
Compute and display the gradient of an image | 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. |