go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
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 >:
Inheritance graph
[legend]

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef OutputImageType::DirectionType DirectionType
 
typedef ImageBase< itkGetStaticConstMacro(ImageDimension) > ImageBaseType
 
typedef OutputImageType::IndexType IndexType
 
typedef OutputImageType::PointType OriginType
 
typedef OutputImageType::ConstPointer OutputImageConstPointer
 
typedef OutputImageType::Pointer OutputImagePointer
 
typedef OutputImageType::RegionType OutputImageRegionType
 
typedef TOutputImage OutputImageType
 
typedef OutputImageType::PixelType PixelType
 
typedef SmartPointer< SelfPointer
 
typedef OutputImageType::PointType PointType
 
typedef OutputImageType::RegionType RegionType
 
typedef TransformToSpatialJacobianSource Self
 
typedef RegionType::SizeType SizeType
 
typedef OutputImageType::SpacingType SpacingType
 
typedef TransformType::SpatialJacobianType SpatialJacobianType
 
typedef ImageSource< TOutputImage > Superclass
 
typedef TransformType::ConstPointer TransformPointerType
 
typedef AdvancedTransform< TTransformPrecisionType, itkGetStaticConstMacro(ImageDimension), itkGetStaticConstMacro(ImageDimension) > TransformType
 

Public Member Functions

virtual void BeforeThreadedGenerateData (void)
 
virtual void GenerateOutputInformation (void)
 
virtual const char * GetClassName () const
 
unsigned long GetMTime (void) const
 
virtual const DirectionTypeGetOutputDirection ()
 
virtual const IndexTypeGetOutputIndex ()
 
virtual const OriginTypeGetOutputOrigin ()
 
virtual const OutputImageRegionTypeGetOutputRegion ()
 
virtual const SizeTypeGetOutputSize ()
 
virtual const SpacingTypeGetOutputSpacing ()
 
virtual const TransformTypeGetTransform ()
 
 itkStaticConstMacro (ImageDimension, unsigned int, TOutputImage::ImageDimension)
 
virtual void SetOutputDirection (DirectionType _arg)
 
virtual void SetOutputIndex (const IndexType &index)
 
virtual void SetOutputOrigin (OriginType _arg)
 
virtual void SetOutputOrigin (const double *values)
 
void SetOutputParametersFromImage (const ImageBaseType *image)
 
virtual void SetOutputRegion (OutputImageRegionType _arg)
 
virtual void SetOutputSize (const SizeType &size)
 
virtual void SetOutputSpacing (SpacingType _arg)
 
virtual void SetOutputSpacing (const double *values)
 
virtual void SetTransform (const TransformType *_arg)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

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

Private Member Functions

void operator= (const Self &)
 
 TransformToSpatialJacobianSource (const Self &)
 

Private Attributes

DirectionType m_OutputDirection
 
OriginType m_OutputOrigin
 
RegionType m_OutputRegion
 
SpacingType m_OutputSpacing
 
TransformPointerType m_Transform
 

Member Typedef Documentation

template<class TOutputImage , class TTransformPrecisionType = double>
typedef SmartPointer< const Self > itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::ConstPointer

Definition at line 76 of file itkTransformToSpatialJacobianSource.h.

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

Definition at line 109 of file itkTransformToSpatialJacobianSource.h.

template<class TOutputImage , class TTransformPrecisionType = double>
typedef ImageBase< itkGetStaticConstMacro( ImageDimension ) > itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::ImageBaseType

Typedefs for base image.

Definition at line 112 of file itkTransformToSpatialJacobianSource.h.

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

Definition at line 105 of file itkTransformToSpatialJacobianSource.h.

template<class TOutputImage , class TTransformPrecisionType = double>
typedef OutputImageType::PointType itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OriginType

Definition at line 108 of file itkTransformToSpatialJacobianSource.h.

template<class TOutputImage , class TTransformPrecisionType = double>
typedef OutputImageType::ConstPointer itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OutputImageConstPointer

Definition at line 80 of file itkTransformToSpatialJacobianSource.h.

template<class TOutputImage , class TTransformPrecisionType = double>
typedef OutputImageType::Pointer itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OutputImagePointer

Definition at line 79 of file itkTransformToSpatialJacobianSource.h.

template<class TOutputImage , class TTransformPrecisionType = double>
typedef OutputImageType::RegionType itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OutputImageRegionType

Definition at line 81 of file itkTransformToSpatialJacobianSource.h.

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

Definition at line 78 of file itkTransformToSpatialJacobianSource.h.

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

Typedefs for output image.

Definition at line 101 of file itkTransformToSpatialJacobianSource.h.

template<class TOutputImage , class TTransformPrecisionType = double>
typedef SmartPointer< Self > itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::Pointer

Definition at line 75 of file itkTransformToSpatialJacobianSource.h.

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

Definition at line 106 of file itkTransformToSpatialJacobianSource.h.

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

Definition at line 103 of file itkTransformToSpatialJacobianSource.h.

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

Standard class typedefs.

Definition at line 73 of file itkTransformToSpatialJacobianSource.h.

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

Definition at line 104 of file itkTransformToSpatialJacobianSource.h.

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

Definition at line 107 of file itkTransformToSpatialJacobianSource.h.

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

Definition at line 98 of file itkTransformToSpatialJacobianSource.h.

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

Definition at line 74 of file itkTransformToSpatialJacobianSource.h.

template<class TOutputImage , class TTransformPrecisionType = double>
typedef TransformType::ConstPointer itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::TransformPointerType

Definition at line 97 of file itkTransformToSpatialJacobianSource.h.

template<class TOutputImage , class TTransformPrecisionType = double>
typedef AdvancedTransform< TTransformPrecisionType, itkGetStaticConstMacro( ImageDimension ), itkGetStaticConstMacro( ImageDimension ) > itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::TransformType

Typedefs for transform.

Definition at line 96 of file itkTransformToSpatialJacobianSource.h.

Constructor & Destructor Documentation

template<class TOutputImage , class TTransformPrecisionType = double>
itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::TransformToSpatialJacobianSource ( )
protected
template<class TOutputImage , class TTransformPrecisionType = double>
itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::~TransformToSpatialJacobianSource ( )
inlineprotected

Definition at line 179 of file itkTransformToSpatialJacobianSource.h.

template<class TOutputImage , class TTransformPrecisionType = double>
itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::TransformToSpatialJacobianSource ( const Self )
private

Member Function Documentation

template<class TOutputImage , class TTransformPrecisionType = double>
virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::BeforeThreadedGenerateData ( void  )
virtual

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

template<class TOutputImage , class TTransformPrecisionType = double>
virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GenerateOutputInformation ( void  )
virtual

TransformToSpatialJacobianSource produces a floating value image.

template<class TOutputImage , class TTransformPrecisionType = double>
virtual const char* itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

template<class TOutputImage , class TTransformPrecisionType = double>
unsigned long itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetMTime ( void  ) const

Compute the Modified Time based on changes to the components.

template<class TOutputImage , class TTransformPrecisionType = double>
virtual const DirectionType& itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetOutputDirection ( )
virtual
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.

template<class TOutputImage , class TTransformPrecisionType = double>
virtual const OriginType& itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetOutputOrigin ( )
virtual

Get the output image origin.

template<class TOutputImage , class TTransformPrecisionType = double>
virtual const OutputImageRegionType& itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetOutputRegion ( )
virtual

Get the region of the output image.

template<class TOutputImage , class TTransformPrecisionType = double>
virtual const SizeType& itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetOutputSize ( )
virtual

Get the size of the output image.

template<class TOutputImage , class TTransformPrecisionType = double>
virtual const SpacingType& itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetOutputSpacing ( )
virtual

Get the output image spacing.

template<class TOutputImage , class TTransformPrecisionType = double>
virtual const TransformType* itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetTransform ( )
virtual

Get a pointer to the coordinate transform.

template<class TOutputImage , class TTransformPrecisionType = double>
itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::itkStaticConstMacro ( ImageDimension  ,
unsigned  int,
TOutputImage::ImageDimension   
)

Number of dimensions.

template<class TOutputImage , class TTransformPrecisionType = double>
void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::LinearGenerateData ( void  )
protected

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

template<class TOutputImage , class TTransformPrecisionType = double>
static Pointer itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::New ( )
static

Method for creation through the object factory.

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.

template<class TOutputImage , class TTransformPrecisionType = double>
void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::operator= ( const Self )
private
template<class TOutputImage , class TTransformPrecisionType = double>
void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected
template<class TOutputImage , class TTransformPrecisionType = double>
virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputDirection ( DirectionType  _arg)
virtual

Set the output direction cosine matrix.

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.

template<class TOutputImage , class TTransformPrecisionType = double>
virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputOrigin ( OriginType  _arg)
virtual

Set the output image origin.

template<class TOutputImage , class TTransformPrecisionType = double>
virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputOrigin ( const double values)
virtual
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

template<class TOutputImage , class TTransformPrecisionType = double>
virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputRegion ( OutputImageRegionType  _arg)
virtual

Set the region of the output image.

template<class TOutputImage , class TTransformPrecisionType = double>
virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputSize ( const SizeType size)
virtual

Set the size of the output image.

template<class TOutputImage , class TTransformPrecisionType = double>
virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputSpacing ( SpacingType  _arg)
virtual

Set the output image spacing.

template<class TOutputImage , class TTransformPrecisionType = double>
virtual void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputSpacing ( const double values)
virtual
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.

template<class TOutputImage , class TTransformPrecisionType = double>
void itk::TransformToSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::ThreadedGenerateData ( const OutputImageRegionType outputRegionForThread,
ThreadIdType  threadId 
)
protected

TransformToSpatialJacobianSource can be implemented as a multithreaded filter.

Field Documentation

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

Definition at line 212 of file itkTransformToSpatialJacobianSource.h.

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

Definition at line 211 of file itkTransformToSpatialJacobianSource.h.

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

Member variables.

Definition at line 208 of file itkTransformToSpatialJacobianSource.h.

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

Definition at line 210 of file itkTransformToSpatialJacobianSource.h.

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

Definition at line 209 of file itkTransformToSpatialJacobianSource.h.



Generated on 04-09-2015 for elastix by doxygen 1.8.9.1 elastix logo