Loading...
Searching...
No Matches
itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType > Class Template Reference

`#include <itkTransformToSpatialJacobianSource.h>`

## Detailed Description

template<class TOutputImage, class TTransformPrecisionType = double>
class itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >

Generate the spatial Jacobian matrix from a coordinate transform.

This class was inspired on an the itkTransformToDeterminantOfSpatialJacobianSource class. It generates the full spatial jacobian matrix. The output image type should thus be an image with a matrix-pixeltype, e.g., the SpatialJacobianType defined in the itkAdvancedTransform class. Suggested/recommended choices are the itk::Matrix<double, ImageDimension, ImageDimension> (=SpatialJacobianType) or itk::Matrix<float, ImageDimension, ImageDimension>

Output information (spacing, size and direction) for the output image should be set. This information has the normal defaults of unit spacing, zero origin and identity direction. Optionally, the output information can be obtained from a reference image. If the reference image is provided and UseReferenceImage is On, then the spacing, origin and direction of the reference image will be used.

Since this filter produces an image which is a different size than its input, it needs to override several of the methods defined in ProcessObject in order to properly manage the pipeline execution model. In particular, this filter overrides ProcessObject::GenerateInputRequestedRegion() and ProcessObject::GenerateOutputInformation().

This filter is implemented as a multithreaded filter. It provides a ThreadedGenerateData() method for its implementation.

Author
  Stefan Klein, Erasmus MC, The Netherlands.

This class was taken from the Insight Journal paper: http://hdl.handle.net/?/?

Definition at line 67 of file itkTransformToSpatialJacobianSource.h.

Inheritance diagram for itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >:
[legend]

## Public Types

using | ConstPointer = SmartPointer<const Self>
using | DirectionType = typename OutputImageType::DirectionType
using | ImageBaseType = ImageBase<Self::ImageDimension>
using | IndexType = typename OutputImageType::IndexType
using | OriginType = typename OutputImageType::PointType
using | OutputImageConstPointer = typename OutputImageType::ConstPointer
using | OutputImagePointer = typename OutputImageType::Pointer
using | OutputImageRegionType = typename OutputImageType::RegionType
using | OutputImageType = TOutputImage
using | Pointer = SmartPointer<Self>
using | PointType = typename OutputImageType::PointType
using | RegionType = typename OutputImageType::RegionType
using | Self = TransformToSpatialJacobianSource
using | SizeType = typename RegionType::SizeType
using | SpacingType = typename OutputImageType::SpacingType
using | SpatialJacobianType = typename TransformType::SpatialJacobianType
using | Superclass = ImageSource<TOutputImage>
using | TransformPointerType = typename TransformType::ConstPointer
using | TransformType = AdvancedTransform<TTransformPrecisionType, Self::ImageDimension, Self::ImageDimension>

## Public Member Functions

void | BeforeThreadedGenerateData () override
void | GenerateOutputInformation () override
virtual const char * | GetClassName () const
ModifiedTimeType | GetMTime () const override
virtual const DirectionType & | GetOutputDirection ()
virtual const IndexType & | GetOutputIndex ()
virtual const OriginType & | GetOutputOrigin ()
virtual const OutputImageRegionType & | GetOutputRegion ()
virtual const SizeType & | GetOutputSize ()
virtual const SpacingType & | GetOutputSpacing ()
virtual const TransformType * | GetTransform ()
| ITK_DISALLOW_COPY_AND_MOVE (TransformToSpatialJacobianSource)
| itkStaticConstMacro (ImageDimension, unsigned int, TOutputImage::ImageDimension)
virtual void | SetOutputDirection (DirectionType _arg)
virtual void | SetOutputIndex (const IndexType &index)
virtual void | SetOutputOrigin (const double *values)
virtual void | SetOutputOrigin (OriginType _arg)
void | SetOutputParametersFromImage (const ImageBaseType *image)
virtual void | SetOutputRegion (OutputImageRegionType _arg)
virtual void | SetOutputSize (const SizeType &size)
virtual void | SetOutputSpacing (const double *values)
virtual void | SetOutputSpacing (SpacingType _arg)
virtual void | SetTransform (const TransformType *_arg)

## Static Public Member Functions

static Pointer | New ()

## Protected Member Functions

void | LinearGenerateData ()
void | NonlinearThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId)
void | PrintSelf (std::ostream &os, Indent indent) const override
void | ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) override
| TransformToSpatialJacobianSource ()
| ~TransformToSpatialJacobianSource () override=default

## Private Attributes

DirectionType | m_OutputDirection { DirectionType::GetIdentity() }
OriginType | m_OutputOrigin {}
RegionType | m_OutputRegion {}
SpacingType | m_OutputSpacing { 1.0 }
TransformPointerType | m_Transform

## Member Typedef Documentation

## ConstPointer

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::ConstPointer = SmartPointer<const Self>

Definition at line 76 of file itkTransformToSpatialJacobianSource.h.

## DirectionType

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::DirectionType = typename OutputImageType::DirectionType

Definition at line 106 of file itkTransformToSpatialJacobianSource.h.

## ImageBaseType

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::ImageBaseType = ImageBase<Self::ImageDimension>

Typedefs for base image.

Definition at line 109 of file itkTransformToSpatialJacobianSource.h.

## IndexType

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::IndexType = typename OutputImageType::IndexType

Definition at line 102 of file itkTransformToSpatialJacobianSource.h.

## OriginType

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OriginType = typename OutputImageType::PointType

Definition at line 105 of file itkTransformToSpatialJacobianSource.h.

## OutputImageConstPointer

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OutputImageConstPointer = typename OutputImageType::ConstPointer

Definition at line 80 of file itkTransformToSpatialJacobianSource.h.

## OutputImagePointer

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OutputImagePointer = typename OutputImageType::Pointer

Definition at line 79 of file itkTransformToSpatialJacobianSource.h.

## OutputImageRegionType

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OutputImageRegionType = typename OutputImageType::RegionType

Definition at line 81 of file itkTransformToSpatialJacobianSource.h.

## OutputImageType

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OutputImageType = TOutputImage

Definition at line 78 of file itkTransformToSpatialJacobianSource.h.

## Pointer

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::Pointer = SmartPointer<Self>

Definition at line 75 of file itkTransformToSpatialJacobianSource.h.

## PointType

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::PointType = typename OutputImageType::PointType

Definition at line 103 of file itkTransformToSpatialJacobianSource.h.

## RegionType

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::RegionType = typename OutputImageType::RegionType

Definition at line 100 of file itkTransformToSpatialJacobianSource.h.

## Self

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::Self = TransformToSpatialJacobianSource

Standard class typedefs.

Definition at line 73 of file itkTransformToSpatialJacobianSource.h.

## SizeType

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SizeType = typename RegionType::SizeType

Definition at line 101 of file itkTransformToSpatialJacobianSource.h.

## SpacingType

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SpacingType = typename OutputImageType::SpacingType

Definition at line 104 of file itkTransformToSpatialJacobianSource.h.

## SpatialJacobianType

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SpatialJacobianType = typename TransformType::SpatialJacobianType

Definition at line 95 of file itkTransformToSpatialJacobianSource.h.

## Superclass

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::Superclass = ImageSource<TOutputImage>

Definition at line 74 of file itkTransformToSpatialJacobianSource.h.

## TransformPointerType

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::TransformPointerType = typename TransformType::ConstPointer

Definition at line 94 of file itkTransformToSpatialJacobianSource.h.

## TransformType

template<class TOutputImage, class TTransformPrecisionType = double>

using itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::TransformType = AdvancedTransform<TTransformPrecisionType, Self::ImageDimension, Self::ImageDimension>

Typedefs for transform.

Definition at line 93 of file itkTransformToSpatialJacobianSource.h.

## Constructor & Destructor Documentation

## TransformToSpatialJacobianSource()

template<class TOutputImage, class TTransformPrecisionType = double>

itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::TransformToSpatialJacobianSource | ( |  | ) |

protected

## ~TransformToSpatialJacobianSource()

template<class TOutputImage, class TTransformPrecisionType = double>

itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::~TransformToSpatialJacobianSource | ( |  | ) |

override protected default

## Member Function Documentation

## BeforeThreadedGenerateData()

template<class TOutputImage, class TTransformPrecisionType = double>

void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::BeforeThreadedGenerateData | ( |  | ) |

override

Checking if transform is set. If a linear transformation is used, the unthreaded LinearGenerateData is called.

## GenerateOutputInformation()

template<class TOutputImage, class TTransformPrecisionType = double>

void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GenerateOutputInformation | ( |  | ) |

override

TransformToSpatialJacobianSource produces a floating value image.

## GetClassName()

template<class TOutputImage, class TTransformPrecisionType = double>

virtual const char * itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetClassName | ( |  | ) | const

virtual

Run-time type information (and related methods).

## GetMTime()

template<class TOutputImage, class TTransformPrecisionType = double>

ModifiedTimeType itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetMTime | ( |  | ) | const

override

Compute the Modified Time based on changes to the components.

## GetOutputDirection()

template<class TOutputImage, class TTransformPrecisionType = double>

virtual const DirectionType & itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetOutputDirection | ( |  | ) |

virtual

## GetOutputIndex()

template<class TOutputImage, class TTransformPrecisionType = double>

virtual const IndexType & itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetOutputIndex | ( |  | ) |

virtual

Get the start index of the output largest possible region.

## GetOutputOrigin()

template<class TOutputImage, class TTransformPrecisionType = double>

virtual const OriginType & itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetOutputOrigin | ( |  | ) |

virtual

Get the output image origin.

## GetOutputRegion()

template<class TOutputImage, class TTransformPrecisionType = double>

virtual const OutputImageRegionType & itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetOutputRegion | ( |  | ) |

virtual

Get the region of the output image.

## GetOutputSize()

template<class TOutputImage, class TTransformPrecisionType = double>

virtual const SizeType & itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetOutputSize | ( |  | ) |

virtual

Get the size of the output image.

## GetOutputSpacing()

template<class TOutputImage, class TTransformPrecisionType = double>

virtual const SpacingType & itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetOutputSpacing | ( |  | ) |

virtual

Get the output image spacing.

## GetTransform()

template<class TOutputImage, class TTransformPrecisionType = double>

virtual const TransformType * itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetTransform | ( |  | ) |

virtual

Get a pointer to the coordinate transform.

## ITK_DISALLOW_COPY_AND_MOVE()

template<class TOutputImage, class TTransformPrecisionType = double>

itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::ITK_DISALLOW_COPY_AND_MOVE | ( | TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType > |  | ) |

## itkStaticConstMacro()

template<class TOutputImage, class TTransformPrecisionType = double>

itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::itkStaticConstMacro | ( | ImageDimension | ,
|  | unsigned int | ,
|  | TOutputImage::ImageDimension | )

Number of dimensions.

## LinearGenerateData()

template<class TOutputImage, class TTransformPrecisionType = double>

void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::LinearGenerateData | ( |  | ) |

protected

Faster implementation for resampling that works for with linear transformation types. Unthreaded.

## New()

template<class TOutputImage, class TTransformPrecisionType = double>

Pointer itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::New | ( |  | ) |

static

Method for creation through the object factory.

## NonlinearThreadedGenerateData()

template<class TOutputImage, class TTransformPrecisionType = double>

void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::NonlinearThreadedGenerateData | ( | const OutputImageRegionType & | outputRegionForThread,
|  | ThreadIdType | threadId )

protected

Default implementation for resampling that works for any transformation type.

## PrintSelf()

template<class TOutputImage, class TTransformPrecisionType = double>

void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::PrintSelf | ( | std::ostream & | os,
|  | Indent | indent ) const

override protected

## SetOutputDirection()

template<class TOutputImage, class TTransformPrecisionType = double>

virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputDirection | ( | DirectionType | _arg | ) |

virtual

Set the output direction cosine matrix.

## SetOutputIndex()

template<class TOutputImage, class TTransformPrecisionType = double>

virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputIndex | ( | const IndexType & | index | ) |

virtual

Set the start index of the output largest possible region. The default is an index of all zeros.

## SetOutputOrigin() [1/2]

template<class TOutputImage, class TTransformPrecisionType = double>

virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputOrigin | ( | const double * | values | ) |

virtual

## SetOutputOrigin() [2/2]

template<class TOutputImage, class TTransformPrecisionType = double>

virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputOrigin | ( | OriginType | _arg | ) |

virtual

Set the output image origin.

## SetOutputParametersFromImage()

template<class TOutputImage, class TTransformPrecisionType = double>

void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputParametersFromImage | ( | const ImageBaseType * | image | ) |

Helper method to set the output parameters based on this image

## SetOutputRegion()

template<class TOutputImage, class TTransformPrecisionType = double>

virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputRegion | ( | OutputImageRegionType | _arg | ) |

virtual

Set the region of the output image.

## SetOutputSize()

template<class TOutputImage, class TTransformPrecisionType = double>

virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputSize | ( | const SizeType & | size | ) |

virtual

Set the size of the output image.

## SetOutputSpacing() [1/2]

template<class TOutputImage, class TTransformPrecisionType = double>

virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputSpacing | ( | const double * | values | ) |

virtual

## SetOutputSpacing() [2/2]

template<class TOutputImage, class TTransformPrecisionType = double>

virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputSpacing | ( | SpacingType | _arg | ) |

virtual

Set the output image spacing.

## SetTransform()

template<class TOutputImage, class TTransformPrecisionType = double>

virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetTransform | ( | const TransformType * | _arg | ) |

virtual

Set the coordinate transformation. Set the coordinate transform to use for resampling. Note that this must be in physical coordinates and it is the output-to-input transform, NOT the input-to-output transform that you might naively expect. By default the filter uses an Identity transform. You must provide a different transform here, before attempting to run the filter, if you do not want to use the default Identity transform.

## ThreadedGenerateData()

template<class TOutputImage, class TTransformPrecisionType = double>

void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::ThreadedGenerateData | ( | const OutputImageRegionType & | outputRegionForThread,
|  | ThreadIdType | threadId )

override protected

TransformToSpatialJacobianSource can be implemented as a multithreaded filter.

## Field Documentation

## m_OutputDirection

template<class TOutputImage, class TTransformPrecisionType = double>

DirectionType itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::m_OutputDirection { DirectionType::GetIdentity() }

private

Definition at line 216 of file itkTransformToSpatialJacobianSource.h.

## m_OutputOrigin

template<class TOutputImage, class TTransformPrecisionType = double>

OriginType itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::m_OutputOrigin {}

private

Definition at line 215 of file itkTransformToSpatialJacobianSource.h.

## m_OutputRegion

template<class TOutputImage, class TTransformPrecisionType = double>

RegionType itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::m_OutputRegion {}

private

Member variables.

Definition at line 210 of file itkTransformToSpatialJacobianSource.h.

## m_OutputSpacing

template<class TOutputImage, class TTransformPrecisionType = double>

SpacingType itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::m_OutputSpacing { 1.0 }

private

Definition at line 214 of file itkTransformToSpatialJacobianSource.h.

## m_Transform

template<class TOutputImage, class TTransformPrecisionType = double>

TransformPointerType itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::m_Transform

private

Initial value:
{
AdvancedIdentityTransform<TTransformPrecisionType, ImageDimension>::New()
}
itk::AdvancedIdentityTransform::New
static Pointer New()

Definition at line 211 of file itkTransformToSpatialJacobianSource.h.

Generated on 1768596610 for elastix by 1.15.0 |