#include <itkOrientImageFilter.h>
Inheritance diagram for itk::OrientImageFilter< TInputImage, TOutputImage >:
This class satisfies a common requirement in medical imaging, which is to properly orient a 3 dimensional image with respect to anatomical features. Due to the wide variety of hardware used to generate 3D images of human anatomy, and the even wider variety of image processing software, it is often necessary to re-orient image volume data.
OrientImageFilter depends on a set of constants that describe all possible permutations of Axes. These reside in itkSpatialOrientation.h. These are labeled according to the following scheme: Directions are labeled in terms of following pairs:
The initials of these directions are used in a 3 letter code in the enumerated type itk::SpatialOrientation::ValidCoordinateOrientationFlags. The initials are given fastest moving index first, second fastest second, third fastest third. Examples:
In order to use this filter, you need to supply an input image, the current orientation of the input image (set with SetGivenCoordinateOrientation) and the desired orientation. (set with SetDesiredCoordinateOrientation). You may explicitly set the DesiredOrientation with SetDesiredCoordinateOrientation (if UseImageDirection is "off") or you can use the image's direction cosines to set the DesiredOrientation (if UseImageDirection is "on"). When reading image files that define the coordinate orientation of the image, the current orientation is stored in the MetadataDictionary for the itk::Image object and the Image.Direction direction cosine matrix created from the file.
As an example, if you wished to keep all images within your program in the orientation corresponding to the Analyze file format's 'CORONAL' orientation you could do something like the following
#include "itkAnalyzeImageIO.h" #include "itkMetaDataObject.h" #include "itkImage.h" #include "itkSpatialOrientation.h" #include "itkOrientImageFilter.h" #include "itkIOCommon.h" typedef itk::Image<unsigned char,3> ImageType; typedef itk::ImageFileReader< TstImageType > ImageReaderType ; ImageType::Pointer ReadAnalyzeFile(const char *path) { itk::AnalyzeImageIO::Pointer io = itk::AnalyzeImageIO::New(); ImageReaderType::Pointer fileReader = ImageReaderType::New(); fileReader->SetImageIO(io); fileReader->SetFileName(path); fileReader->Update(); ImageType::Pointer rval = fileReader->GetOutput(); itk::SpatialOrientation::ValidCoordinateOrientationFlags fileOrientation; itk::ExposeMetaData<itk::SpatialOrientation::ValidCoordinateOrientationFlags> (rval->GetMetaDataDictionary(),itk::ITK_CoordinateOrientation,fileOrientation); itk::OrientImageFilter<ImageType,ImageType>::Pointer orienter = itk::OrientImageFilter<ImageType,ImageType>::New(); orienter->SetGivenCoordinateOrientation(fileOrientation); orienter->SetDesiredCoordinateOrientation(itk::SpatialOrientation::ITK_COORDINATE_ORIENTATION_RIP); orienter->SetInput(rval); orienter->Update(); rval = orienter->GetOutput(); return rval; }
Or, using the direction cosines of the image,
#include "itkAnalyzeImageIO.h" #include "itkImage.h" #include "itkOrientImageFilter.h" typedef itk::Image<unsigned char,3> ImageType; typedef itk::ImageFileReader< TstImageType > ImageReaderType ; ImageType::Pointer ReadAnalyzeFile(const char *path) { itk::AnalyzeImageIO::Pointer io = itk::AnalyzeImageIO::New(); ImageReaderType::Pointer fileReader = ImageReaderType::New(); fileReader->SetImageIO(io); fileReader->SetFileName(path); fileReader->Update(); ImageType::Pointer rval = fileReader->GetOutput(); itk::OrientImageFilter<ImageType,ImageType>::Pointer orienter = itk::OrientImageFilter<ImageType,ImageType>::New(); orienter->UseImageDirectionOn(); orienter->SetDesiredCoordinateOrientation(itk::SpatialOrientation::ITK_COORDINATE_ORIENTATION_RIP); orienter->SetInput(rval); orienter->Update(); rval = orienter->GetOutput(); return rval; }
Definition at line 139 of file itkOrientImageFilter.h.
|
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 148 of file itkOrientImageFilter.h. |
|
Definition at line 162 of file itkOrientImageFilter.h. |
|
Definition at line 170 of file itkOrientImageFilter.h. |
|
Axes flipper type. Definition at line 169 of file itkOrientImageFilter.h. |
|
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 154 of file itkOrientImageFilter.h. |
|
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 156 of file itkOrientImageFilter.h. |
|
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 153 of file itkOrientImageFilter.h. |
|
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 155 of file itkOrientImageFilter.h. |
|
Some convenient typedefs. Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 151 of file itkOrientImageFilter.h. |
|
Definition at line 158 of file itkOrientImageFilter.h. |
|
Reimplemented from itk::ImageSource< TOutputImage >. Definition at line 160 of file itkOrientImageFilter.h. |
|
Reimplemented from itk::ImageSource< TOutputImage >. Definition at line 157 of file itkOrientImageFilter.h. |
|
Superclass typedefs. Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 159 of file itkOrientImageFilter.h. |
|
Some convenient typedefs. Reimplemented from itk::ImageSource< TOutputImage >. Definition at line 152 of file itkOrientImageFilter.h. |
|
Definition at line 166 of file itkOrientImageFilter.h. |
|
Axes permuter type. Definition at line 165 of file itkOrientImageFilter.h. |
|
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 147 of file itkOrientImageFilter.h. |
|
Standard class typedefs. Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 144 of file itkOrientImageFilter.h. |
|
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 146 of file itkOrientImageFilter.h. |
|
The dimensions of the input image must equal those of the output image. Definition at line 183 of file itkOrientImageFilter.h. |
|
The dimension of the input image must be 3. Definition at line 187 of file itkOrientImageFilter.h. |
|
|
|
Definition at line 258 of file itkOrientImageFilter.h. |
|
* Member functions used by GenerateData: |
|
OrientImageFilter will produce the entire output. Reimplemented from itk::ProcessObject. |
|
Single-threaded version of GenerateData. This filter delegates to PermuteAxesImageFilter and FlipImageFilter. Reimplemented from itk::ImageSource< TOutputImage >. |
|
OrientImageFilter needs the entire input be available. Thus, it needs to provide an implementation of GenerateInputRequestedRegion(). Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. |
|
OrientImageFilter produces an image which is a different dimensionality than its input image, in general. As such, OrientImageFilter needs to provide an implementation for GenerateOutputInformation() in order to inform the pipeline execution model. The original documentation of this method is below.
Reimplemented from itk::ProcessObject. |
|
Set/Get the orientation codes to define the coordinate transform. |
|
Get flip axes. |
|
Set/Get the orientation codes to define the coordinate transform. |
|
Runtime information support. Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. |
|
Get axes permute order. |
|
Controls how the GivenCoordinateOrientation is determined. If "on", the direction cosines determine the coordinate orientation. If "off", the user must use the SetGivenCoordinateOrientation method to establis the orientation. For compatbility with the original API, the default if "off". |
|
ImageDimension constants Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. |
|
ImageDimension constants Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. |
|
* Member functions used by GenerateData: |
|
* Member functions used by GenerateData: |
|
Standard New method. Reimplemented from itk::Object. |
|
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes. Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. |
|
Set/Get the orientation codes to define the coordinate transform. |
|
Convenience methods to set desired slice orientation These methods allow a limited selection of slice orientations without having to specify the SpatialOrientation. SetDesiredCoordinateOrientationToAxial is equivalent to SetDesiredCoordinateOrientation (ITK_COORDINATE_ORIENTATION_RAI). SetDesiredCoordinateOrientationToCoronal is equivalent to SetDesiredCoordinateOrientation (ITK_COORDINATE_ORIENTATION_RSA). SetDesiredCoordinateOrientationToSagittal is equivalent to SetDesiredCoordinateOrientation (ITK_COORDINATE_ORIENTATION_ASL). Definition at line 233 of file itkOrientImageFilter.h. |
|
Convenience methods to set desired slice orientation These methods allow a limited selection of slice orientations without having to specify the SpatialOrientation. SetDesiredCoordinateOrientationToAxial is equivalent to SetDesiredCoordinateOrientation (ITK_COORDINATE_ORIENTATION_RAI). SetDesiredCoordinateOrientationToCoronal is equivalent to SetDesiredCoordinateOrientation (ITK_COORDINATE_ORIENTATION_RSA). SetDesiredCoordinateOrientationToSagittal is equivalent to SetDesiredCoordinateOrientation (ITK_COORDINATE_ORIENTATION_ASL). Definition at line 237 of file itkOrientImageFilter.h. |
|
Convenience methods to set desired slice orientation These methods allow a limited selection of slice orientations without having to specify the SpatialOrientation. SetDesiredCoordinateOrientationToAxial is equivalent to SetDesiredCoordinateOrientation (ITK_COORDINATE_ORIENTATION_RAI). SetDesiredCoordinateOrientationToCoronal is equivalent to SetDesiredCoordinateOrientation (ITK_COORDINATE_ORIENTATION_RSA). SetDesiredCoordinateOrientationToSagittal is equivalent to SetDesiredCoordinateOrientation (ITK_COORDINATE_ORIENTATION_ASL). Definition at line 241 of file itkOrientImageFilter.h. |
|
Set/Get the orientation codes to define the coordinate transform. |
|
Controls how the GivenCoordinateOrientation is determined. If "on", the direction cosines determine the coordinate orientation. If "off", the user must use the SetGivenCoordinateOrientation method to establis the orientation. For compatbility with the original API, the default if "off". |
|
Controls how the GivenCoordinateOrientation is determined. If "on", the direction cosines determine the coordinate orientation. If "off", the user must use the SetGivenCoordinateOrientation method to establis the orientation. For compatbility with the original API, the default if "off". |
|
Controls how the GivenCoordinateOrientation is determined. If "on", the direction cosines determine the coordinate orientation. If "off", the user must use the SetGivenCoordinateOrientation method to establis the orientation. For compatbility with the original API, the default if "off". |