go home Home | Main Page | Topics | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Loading...
Searching...
No Matches
itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType > Class Template Reference

#include <itkTransformToDeterminantOfSpatialJacobianSource.h>

Detailed Description

template<typename TOutputImage, typename TTransformPrecisionType = double>
class itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >

Generate the spatial Jacobian from a coordinate transform.

This class was inspired on an the itkTransformToDeformationFieldSource class.

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
Marius Staring, Leiden University Medical Center, The Netherlands.

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

Definition at line 74 of file itkTransformToDeterminantOfSpatialJacobianSource.h.

Inheritance diagram for itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >:

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 = TransformToDeterminantOfSpatialJacobianSource
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
ModifiedTimeType GetMTime () const override
virtual const DirectionTypeGetOutputDirection ()
virtual const IndexTypeGetOutputIndex ()
virtual const OriginTypeGetOutputOrigin ()
virtual const OutputImageRegionTypeGetOutputRegion ()
virtual const SizeTypeGetOutputSize ()
virtual const SpacingTypeGetOutputSpacing ()
virtual const TransformTypeGetTransform ()
 ITK_DISALLOW_COPY_AND_MOVE (TransformToDeterminantOfSpatialJacobianSource)
 itkOverrideGetNameOfClassMacro (TransformToDeterminantOfSpatialJacobianSource)
 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
 TransformToDeterminantOfSpatialJacobianSource ()
 ~TransformToDeterminantOfSpatialJacobianSource () 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<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::ConstPointer = SmartPointer<const Self>

◆ DirectionType

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::DirectionType = typename OutputImageType::DirectionType

◆ ImageBaseType

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::ImageBaseType = ImageBase<Self::ImageDimension>

Typedefs for base image.

Definition at line 116 of file itkTransformToDeterminantOfSpatialJacobianSource.h.

◆ IndexType

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::IndexType = typename OutputImageType::IndexType

◆ OriginType

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OriginType = typename OutputImageType::PointType

◆ OutputImageConstPointer

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OutputImageConstPointer = typename OutputImageType::ConstPointer

◆ OutputImagePointer

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OutputImagePointer = typename OutputImageType::Pointer

◆ OutputImageRegionType

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OutputImageRegionType = typename OutputImageType::RegionType

◆ OutputImageType

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::OutputImageType = TOutputImage

◆ Pointer

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::Pointer = SmartPointer<Self>

◆ PointType

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::PointType = typename OutputImageType::PointType

◆ RegionType

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::RegionType = typename OutputImageType::RegionType

◆ Self

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::Self = TransformToDeterminantOfSpatialJacobianSource

Standard class typedefs.

Definition at line 80 of file itkTransformToDeterminantOfSpatialJacobianSource.h.

◆ SizeType

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SizeType = typename RegionType::SizeType

◆ SpacingType

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SpacingType = typename OutputImageType::SpacingType

◆ SpatialJacobianType

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SpatialJacobianType = typename TransformType::SpatialJacobianType

◆ Superclass

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::Superclass = ImageSource<TOutputImage>

◆ TransformPointerType

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::TransformPointerType = typename TransformType::ConstPointer

◆ TransformType

template<typename TOutputImage, typename TTransformPrecisionType = double>
using itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::TransformType = AdvancedTransform<TTransformPrecisionType, Self::ImageDimension, Self::ImageDimension>

Typedefs for transform.

Definition at line 100 of file itkTransformToDeterminantOfSpatialJacobianSource.h.

Constructor & Destructor Documentation

◆ TransformToDeterminantOfSpatialJacobianSource()

template<typename TOutputImage, typename TTransformPrecisionType = double>
itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::TransformToDeterminantOfSpatialJacobianSource ( )
protected

◆ ~TransformToDeterminantOfSpatialJacobianSource()

template<typename TOutputImage, typename TTransformPrecisionType = double>
itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::~TransformToDeterminantOfSpatialJacobianSource ( )
overrideprotecteddefault

Member Function Documentation

◆ BeforeThreadedGenerateData()

template<typename TOutputImage, typename TTransformPrecisionType = double>
void itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::BeforeThreadedGenerateData ( )
override

Checking if transform is set. In case of linear transformations, the LinearGenerateData is called.

◆ GenerateOutputInformation()

template<typename TOutputImage, typename TTransformPrecisionType = double>
void itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GenerateOutputInformation ( )
override

TransformToDeterminantOfSpatialJacobianSource produces a floating value image.

◆ GetMTime()

template<typename TOutputImage, typename TTransformPrecisionType = double>
ModifiedTimeType itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetMTime ( ) const
override

Compute the Modified Time based on changes to the components.

◆ GetOutputDirection()

template<typename TOutputImage, typename TTransformPrecisionType = double>
virtual const DirectionType & itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetOutputDirection ( )
virtual

◆ GetOutputIndex()

template<typename TOutputImage, typename TTransformPrecisionType = double>
virtual const IndexType & itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::GetOutputIndex ( )
virtual

Get the start index of the output largest possible region.

◆ GetOutputOrigin()

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

Get the output image origin.

◆ GetOutputRegion()

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

Get the region of the output image.

◆ GetOutputSize()

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

Get the size of the output image.

◆ GetOutputSpacing()

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

Get the output image spacing.

◆ GetTransform()

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

Get a pointer to the coordinate transform.

◆ ITK_DISALLOW_COPY_AND_MOVE()

template<typename TOutputImage, typename TTransformPrecisionType = double>
itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::ITK_DISALLOW_COPY_AND_MOVE ( TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType > )

◆ itkOverrideGetNameOfClassMacro()

template<typename TOutputImage, typename TTransformPrecisionType = double>
itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::itkOverrideGetNameOfClassMacro ( TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType > )

Run-time type information (and related methods).

◆ itkStaticConstMacro()

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

Number of dimensions.

◆ LinearGenerateData()

template<typename TOutputImage, typename TTransformPrecisionType = double>
void itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::LinearGenerateData ( )
protected

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

◆ New()

template<typename TOutputImage, typename TTransformPrecisionType = double>
Pointer itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::New ( )
static

Method for creation through the object factory.

◆ NonlinearThreadedGenerateData()

template<typename TOutputImage, typename TTransformPrecisionType = double>
void itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::NonlinearThreadedGenerateData ( const OutputImageRegionType & outputRegionForThread,
ThreadIdType threadId )
protected

Default implementation for resampling that works for any transformation type.

◆ PrintSelf()

template<typename TOutputImage, typename TTransformPrecisionType = double>
void itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::PrintSelf ( std::ostream & os,
Indent indent ) const
overrideprotected

◆ SetOutputDirection()

template<typename TOutputImage, typename TTransformPrecisionType = double>
virtual void itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputDirection ( DirectionType _arg)
virtual

Set the output direction cosine matrix.

◆ SetOutputIndex()

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

◆ SetOutputOrigin() [2/2]

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

Set the output image origin.

◆ SetOutputParametersFromImage()

template<typename TOutputImage, typename TTransformPrecisionType = double>
void itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputParametersFromImage ( const ImageBaseType * image)

Helper method to set the output parameters based on this image

◆ SetOutputRegion()

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

Set the region of the output image.

◆ SetOutputSize()

template<typename TOutputImage, typename TTransformPrecisionType = double>
virtual void itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputSize ( const SizeType & size)
virtual

Set the size of the output image.

◆ SetOutputSpacing() [1/2]

template<typename TOutputImage, typename TTransformPrecisionType = double>
virtual void itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::SetOutputSpacing ( const double * values)
virtual

◆ SetOutputSpacing() [2/2]

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

Set the output image spacing.

◆ SetTransform()

template<typename TOutputImage, typename TTransformPrecisionType = double>
virtual void itk::TransformToDeterminantOfSpatialJacobianSource< 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<typename TOutputImage, typename TTransformPrecisionType = double>
void itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::ThreadedGenerateData ( const OutputImageRegionType & outputRegionForThread,
ThreadIdType threadId )
overrideprotected

TransformToDeterminantOfSpatialJacobianSource can be implemented as a multithreaded filter.

Member Data Documentation

◆ m_OutputDirection

template<typename TOutputImage, typename TTransformPrecisionType = double>
DirectionType itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::m_OutputDirection { DirectionType::GetIdentity() }
private

◆ m_OutputOrigin

template<typename TOutputImage, typename TTransformPrecisionType = double>
OriginType itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::m_OutputOrigin {}
private

◆ m_OutputRegion

template<typename TOutputImage, typename TTransformPrecisionType = double>
RegionType itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::m_OutputRegion {}
private

Member variables.

Definition at line 216 of file itkTransformToDeterminantOfSpatialJacobianSource.h.

◆ m_OutputSpacing

template<typename TOutputImage, typename TTransformPrecisionType = double>
SpacingType itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::m_OutputSpacing { 1.0 }
private

◆ m_Transform

template<typename TOutputImage, typename TTransformPrecisionType = double>
TransformPointerType itk::TransformToDeterminantOfSpatialJacobianSource< TOutputImage, TTransformPrecisionType >::m_Transform
private


Generated on 1774142652 for elastix by doxygen 1.15.0 elastix logo