NifTK
16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
|
This class basically takes two vector images as input (Phi and V) and calculates Phi + (dt * V). More...
Public Types | |
typedef VectorPhiPlusDeltaTTimesVFilter | Self |
typedef ImageToImageFilter < Image< Vector< TScalarType, NDimensions >, NDimensions > , Image< Vector< TScalarType, NDimensions >, NDimensions > > | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
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) |
InputScalarImageType * | GetThicknessImage () |
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) |
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.
typedef SmartPointer<const Self> itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::ConstPointer |
typedef InputImageType::IndexType itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::InputImageIndexType |
typedef InputImageType::RegionType itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::InputImageRegionType |
typedef Image< InputPixelType, NDimensions > itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::InputImageType |
typedef Vector< TScalarType, NDimensions > itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::InputPixelType |
Standard typedefs.
typedef Image< TScalarType, NDimensions > itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::InputScalarImageType |
typedef InputImageType itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::OutputImageType |
typedef InputPixelType itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::OutputPixelType |
typedef SmartPointer<Self> itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::Pointer |
typedef VectorPhiPlusDeltaTTimesVFilter itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::Self |
Standard "Self" typedef.
typedef ImageToImageFilter<Image< Vector<TScalarType, NDimensions>, NDimensions>, Image< Vector<TScalarType, NDimensions>, NDimensions> > itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::Superclass |
typedef VectorLinearInterpolateImageFunction< InputImageType, TScalarType > itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::VectorLinearInterpolatorType |
|
protected |
|
inlineprotected |
|
protectedvirtual |
|
virtual |
Run-time type information (and related methods).
|
virtual |
|
virtual |
|
virtual |
|
inline |
Returns a pointer to the thickness image held internally.
itk::VectorPhiPlusDeltaTTimesVFilter< TScalarType, NDimensions >::itkStaticConstMacro | ( | Dimension | , |
unsigned | int, | ||
NDimensions | |||
) |
Get the number of dimensions we are working in.
|
static |
Method for creation through the object factory.
|
protected |
|
virtual |
Set/Get Lambda. Default 1.
|
virtual |
Set/Get m, the number of steps for this velocity field. Default 1.
|
virtual |
Set/Get flag to subtract steps. i.e. output = input 0 - (delta t * input 1). Default false.
|
inline |
Set the thickness prior.
|
inline |
Set the time zero transformation.
|
protectedvirtual |