NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions > Class Template Reference

This class basically takes two vector images as input (Phi and V) and calculates Phi + (dt * V). More...

Inheritance diagram for itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >:
Inheritance graph
[legend]
Collaboration diagram for itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >:
Collaboration graph
[legend]

Public Types

typedef
VectorPhiPlusDeltaTTimesVFilter 
Self
 
typedef ImageToImageFilter
< Image< Vector< TScalarType,
NDimensions >, NDimensions >
, Image< Vector< TScalarType,
NDimensions >, NDimensions > > 
Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef Vector< TScalarType,
NDimensions > 
InputPixelType
 
typedef Image< InputPixelType,
NDimensions > 
InputImageType
 
typedef Image< TScalarType,
NDimensions > 
InputScalarImageType
 
typedef InputImageType::IndexType InputImageIndexType
 
typedef InputImageType::RegionType InputImageRegionType
 
typedef InputPixelType OutputPixelType
 
typedef InputImageType OutputImageType
 
typedef
VectorLinearInterpolateImageFunction
< InputImageType, TScalarType > 
VectorLinearInterpolatorType
 

Public Member Functions

virtual const char * GetClassName () const
 
 itkStaticConstMacro (Dimension, unsigned int, NDimensions)
 
virtual void SetSubtractSteps (bool _arg)
 
virtual bool GetSubtractSteps ()
 
virtual void SetDeltaT (double _arg)
 
virtual double GetDeltaT ()
 
virtual void SetNumberOfSteps (unsigned int _arg)
 
virtual unsigned int GetNumberOfSteps ()
 
void SetTimeZeroTransformation (InputImageType *image)
 
void SetThicknessPrior (InputScalarImageType *image)
 
InputScalarImageTypeGetThicknessImage ()
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 VectorPhiPlusDeltaTTimesVFilter ()
 
 ~VectorPhiPlusDeltaTTimesVFilter ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
virtual void BeforeThreadedGenerateData ()
 
virtual void ThreadedGenerateData (const InputImageRegionType &outputRegionForThread, ThreadIdType threadId)
 

Detailed Description

template<typename TScalarType, unsigned int NDimensions = 3>
class itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >

This class basically takes two vector images as input (Phi and V) and calculates Phi + (dt * V).

Input 0 is assumed to be Phi, and input 1 is assumed to be V.

Furthermore, Phi should be an image, where each voxel contains a vector which is the absolute position (not the displacement) of a deformation field transformation. V should be a velocity field.

This filter was originally developed to implement step 3(a) in Das et. al. NeuroImage 45 (2009) 867-879. This filter is different to VectorVPlusLambdaUImageFilter, as VectorVPlusLambdaUImageFilter is just adding two vectors together (at integer voxel positions) with a scale factor. This filter is effectively ray tracing, as it adds on the velocity field, interpolating as it goes. As such, this filter can be considered an implementation of Euler's method for integrating a PDE. However, you are advised to use something more sophisticated like itkFourthOrderRungeKuttaVelocityFieldIntegrator.

An additional two inputs are required. Input 2 should be the phi transformation at time zero, specified using SetTimeZeroTransformation. This means we can calculate the displacement internally, which gives us the current thickness. Input 3 should be a scalar image indicating a thickness prior, and set using SetThicknessPrior. These must both be specified, and then we only update the output value if the calculated thickness is less than the thickness prior.

Furthermore, we do store the thickness value at each point, and expose this map via a pointer.

See also
VectorVPlusLambdaUImageFilter.
FourthOrderRungeKuttaVelocityFieldIntegrator

Member Typedef Documentation

template<typename TScalarType , unsigned int NDimensions = 3>
typedef SmartPointer<const Self> itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::ConstPointer
template<typename TScalarType , unsigned int NDimensions = 3>
typedef InputImageType::IndexType itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::InputImageIndexType
template<typename TScalarType , unsigned int NDimensions = 3>
typedef InputImageType::RegionType itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::InputImageRegionType
template<typename TScalarType , unsigned int NDimensions = 3>
typedef Image< InputPixelType, NDimensions > itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::InputImageType
template<typename TScalarType , unsigned int NDimensions = 3>
typedef Vector< TScalarType, NDimensions > itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::InputPixelType

Standard typedefs.

template<typename TScalarType , unsigned int NDimensions = 3>
typedef Image< TScalarType, NDimensions > itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::InputScalarImageType
template<typename TScalarType , unsigned int NDimensions = 3>
typedef InputImageType itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::OutputImageType
template<typename TScalarType , unsigned int NDimensions = 3>
typedef InputPixelType itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::OutputPixelType
template<typename TScalarType , unsigned int NDimensions = 3>
typedef SmartPointer<Self> itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::Pointer
template<typename TScalarType , unsigned int NDimensions = 3>
typedef VectorPhiPlusDeltaTTimesVFilter itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::Self

Standard "Self" typedef.

template<typename TScalarType , unsigned int NDimensions = 3>
typedef ImageToImageFilter<Image< Vector<TScalarType, NDimensions>, NDimensions>, Image< Vector<TScalarType, NDimensions>, NDimensions> > itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::Superclass
template<typename TScalarType , unsigned int NDimensions = 3>
typedef VectorLinearInterpolateImageFunction< InputImageType, TScalarType > itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::VectorLinearInterpolatorType

Constructor & Destructor Documentation

template<typename TScalarType , unsigned int NDimensions = 3>
itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::VectorPhiPlusDeltaTTimesVFilter ( )
protected
template<typename TScalarType , unsigned int NDimensions = 3>
itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::~VectorPhiPlusDeltaTTimesVFilter ( )
inlineprotected

Member Function Documentation

template<typename TScalarType , unsigned int NDimensions = 3>
virtual void itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::BeforeThreadedGenerateData ( )
protectedvirtual
template<typename TScalarType , unsigned int NDimensions = 3>
virtual const char* itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

template<typename TScalarType , unsigned int NDimensions = 3>
virtual double itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::GetDeltaT ( )
virtual
template<typename TScalarType , unsigned int NDimensions = 3>
virtual unsigned int itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::GetNumberOfSteps ( )
virtual
template<typename TScalarType , unsigned int NDimensions = 3>
virtual bool itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::GetSubtractSteps ( )
virtual
template<typename TScalarType , unsigned int NDimensions = 3>
InputScalarImageType* itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::GetThicknessImage ( )
inline

Returns a pointer to the thickness image held internally.

template<typename TScalarType , unsigned int NDimensions = 3>
itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::itkStaticConstMacro ( Dimension  ,
unsigned  int,
NDimensions   
)

Get the number of dimensions we are working in.

template<typename TScalarType , unsigned int NDimensions = 3>
static Pointer itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::New ( )
static

Method for creation through the object factory.

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected
template<typename TScalarType , unsigned int NDimensions = 3>
virtual void itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::SetDeltaT ( double  _arg)
virtual

Set/Get Lambda. Default 1.

template<typename TScalarType , unsigned int NDimensions = 3>
virtual void itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::SetNumberOfSteps ( unsigned int  _arg)
virtual

Set/Get m, the number of steps for this velocity field. Default 1.

template<typename TScalarType , unsigned int NDimensions = 3>
virtual void itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::SetSubtractSteps ( bool  _arg)
virtual

Set/Get flag to subtract steps. i.e. output = input 0 - (delta t * input 1). Default false.

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::SetThicknessPrior ( InputScalarImageType image)
inline

Set the thickness prior.

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::SetTimeZeroTransformation ( InputImageType image)
inline

Set the time zero transformation.

template<typename TScalarType , unsigned int NDimensions = 3>
virtual void itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::ThreadedGenerateData ( const InputImageRegionType outputRegionForThread,
ThreadIdType  threadId 
)
protectedvirtual

The documentation for this class was generated from the following file: