itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage > Class Template Reference

Compute the Lie bracket of two vector fields using the formula [v,u](p) = Jac(v)(p).u(p) − Jac(u)(p).v(p) (1). More...

#include <itkVelocityFieldLieBracketFilter.h>

Inheritance diagram for itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >:
ImageToImageFilter

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef
InputFieldType::ConstPointer 
InputFieldConstPointer
typedef
itk::VectorCentralDifferenceImageFunction
< InputFieldType
InputFieldGradientCalculatorType
typedef
InputFieldGradientCalculatorType::OutputType 
InputFieldGradientType
typedef InputFieldType::PixelType InputFieldPixelType
typedef InputFieldType::Pointer InputFieldPointer
typedef InputFieldType::RegionType InputFieldRegionType
typedef TInputImage InputFieldType
typedef
OutputFieldType::ConstPointer 
OutputFieldConstPointer
typedef OutputFieldType::PixelType OutputFieldPixelType
typedef OutputFieldType::Pointer OutputFieldPointer
typedef OutputFieldType::RegionType OutputFieldRegionType
typedef TOutputImage OutputFieldType
typedef SmartPointer< SelfPointer
typedef
VelocityFieldLieBracketFilter 
Self
typedef ImageToImageFilter
< TInputImage, TOutputImage > 
Superclass

Public Member Functions

virtual void GenerateInputRequestedRegion () throw ( InvalidRequestedRegionError )
 itkNewMacro (Self)
 itkStaticConstMacro (OutputFieldPixelDimension, unsigned int, OutputFieldPixelType::Dimension)
 itkStaticConstMacro (InputFieldPixelDimension, unsigned int, InputFieldPixelType::Dimension)
 itkStaticConstMacro (OutputFieldDimension, unsigned int, TOutputImage::ImageDimension)
 itkStaticConstMacro (InputFieldDimension, unsigned int, TInputImage::ImageDimension)
 itkTypeMacro (VelocityFieldLieBracketFilter, ImageToImageFilter)

Protected Member Functions

void BeforeThreadedGenerateData ()
 itkGetObjectMacro (LeftGradientCalculator, InputFieldGradientCalculatorType)
 itkGetObjectMacro (RightGradientCalculator, InputFieldGradientCalculatorType)
 itkSetObjectMacro (LeftGradientCalculator, InputFieldGradientCalculatorType)
 itkSetObjectMacro (RightGradientCalculator, InputFieldGradientCalculatorType)
void PrintSelf (std::ostream &os, Indent indent) const
void ThreadedGenerateData (const OutputFieldRegionType &outputRegionForThread, int threadId)
 VelocityFieldLieBracketFilter ()
 ~VelocityFieldLieBracketFilter ()

Private Member Functions

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

Private Attributes

InputFieldGradientCalculatorType::Pointer m_LeftGradientCalculator
InputFieldGradientCalculatorType::Pointer m_RightGradientCalculator

Detailed Description

template<class TInputImage, class TOutputImage>
class itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >

Compute the Lie bracket of two vector fields using the formula [v,u](p) = Jac(v)(p).u(p) − Jac(u)(p).v(p) (1).

See M. Bossa, M. Hernandez and S.Olmos, Contributions to 3D diffeomorphic atlas estimation: Application to brain images, Proc. of MICCAI’07 and T. Vercauteren, X. Pennec, A. Perchant and N. Ayache, "Symmetric Log-Domain Diffeomorphic Registration: A Demons-based Approach", Proc. of MICCAI 2008.

Note:
Most authors define the Lie bracket as the opposite of (1). Numerical simulations, and personal communication with M. Bossa, showed the relevance of this definition. Future research will aim at fully understanding the reason of this discrepancy.

Velocity fields are represented as images whose pixel type are vector type with N elements, where N is the dimension of the image. The vector type must support element access via operator[]. It is assumed that the vector elements behave like floating point scalars.

This class is templated over the input field type and the output field type.

Warning:
This filter assumes that the input field type and velocity field type both have the same number of dimensions.
Author:
Florence Dru, INRIA and Tom Vercauteren, MKT

Member Typedef Documentation

template<class TInputImage , class TOutputImage >
typedef SmartPointer< const Self > itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::ConstPointer
template<class TInputImage , class TOutputImage >
typedef InputFieldType::ConstPointer itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::InputFieldConstPointer
template<class TInputImage , class TOutputImage >
typedef itk::VectorCentralDifferenceImageFunction< InputFieldType > itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::InputFieldGradientCalculatorType

Gradient calculator type.

template<class TInputImage , class TOutputImage >
typedef InputFieldGradientCalculatorType::OutputType itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::InputFieldGradientType

Gradient type.

template<class TInputImage , class TOutputImage >
typedef InputFieldType::PixelType itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::InputFieldPixelType
template<class TInputImage , class TOutputImage >
typedef InputFieldType::Pointer itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::InputFieldPointer
template<class TInputImage , class TOutputImage >
typedef InputFieldType::RegionType itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::InputFieldRegionType
template<class TInputImage , class TOutputImage >
typedef TInputImage itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::InputFieldType

Some convenient typedefs.

template<class TInputImage , class TOutputImage >
typedef OutputFieldType::ConstPointer itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::OutputFieldConstPointer
template<class TInputImage , class TOutputImage >
typedef OutputFieldType::PixelType itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::OutputFieldPixelType
template<class TInputImage , class TOutputImage >
typedef OutputFieldType::Pointer itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::OutputFieldPointer
template<class TInputImage , class TOutputImage >
typedef OutputFieldType::RegionType itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::OutputFieldRegionType
template<class TInputImage , class TOutputImage >
typedef TOutputImage itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::OutputFieldType
template<class TInputImage , class TOutputImage >
typedef SmartPointer< Self > itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::Pointer
template<class TInputImage , class TOutputImage >
typedef VelocityFieldLieBracketFilter itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::Self

Standard class typedefs.

template<class TInputImage , class TOutputImage >
typedef ImageToImageFilter< TInputImage, TOutputImage > itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::Superclass

Constructor & Destructor Documentation

template<class TInputImage , class TOutputImage >
itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::VelocityFieldLieBracketFilter (  )  [protected]
template<class TInputImage , class TOutputImage >
itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::~VelocityFieldLieBracketFilter (  )  [inline, protected]
template<class TInputImage , class TOutputImage >
itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::VelocityFieldLieBracketFilter ( const Self  )  [private]

Member Function Documentation

template<class TInputImage , class TOutputImage >
void itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::BeforeThreadedGenerateData (  )  [protected]
template<class TInputImage , class TOutputImage >
virtual void itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::GenerateInputRequestedRegion (  )  throw ( InvalidRequestedRegionError ) [virtual]

VelocityFieldLieBracketFilter needs a larger input requested region than the output requested region. As such, VelocityFieldLieBracketFilter needs to provide an implementation for GenerateInputRequestedRegion() in order to inform the pipeline execution model.

See also:
ImageToImageFilter::GenerateInputRequestedRegion()
template<class TInputImage , class TOutputImage >
itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::itkGetObjectMacro ( LeftGradientCalculator  ,
InputFieldGradientCalculatorType   
) [protected]
template<class TInputImage , class TOutputImage >
itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::itkGetObjectMacro ( RightGradientCalculator  ,
InputFieldGradientCalculatorType   
) [protected]

Get right and left gradient calculators.

template<class TInputImage , class TOutputImage >
itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::itkNewMacro ( Self   ) 

Method for creation through the object factory.

template<class TInputImage , class TOutputImage >
itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::itkSetObjectMacro ( LeftGradientCalculator  ,
InputFieldGradientCalculatorType   
) [protected]
template<class TInputImage , class TOutputImage >
itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::itkSetObjectMacro ( RightGradientCalculator  ,
InputFieldGradientCalculatorType   
) [protected]

Set right and left gradient calculators.

template<class TInputImage , class TOutputImage >
itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::itkStaticConstMacro ( OutputFieldPixelDimension  ,
unsigned  int,
OutputFieldPixelType::Dimension   
)
template<class TInputImage , class TOutputImage >
itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::itkStaticConstMacro ( InputFieldPixelDimension  ,
unsigned  int,
InputFieldPixelType::Dimension   
)
template<class TInputImage , class TOutputImage >
itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::itkStaticConstMacro ( OutputFieldDimension  ,
unsigned  int,
TOutputImage::ImageDimension   
)
template<class TInputImage , class TOutputImage >
itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::itkStaticConstMacro ( InputFieldDimension  ,
unsigned  int,
TInputImage::ImageDimension   
)

ImageDimension constants

template<class TInputImage , class TOutputImage >
itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::itkTypeMacro ( VelocityFieldLieBracketFilter< TInputImage, TOutputImage >  ,
ImageToImageFilter   
)

Run-time type information (and related methods).

template<class TInputImage , class TOutputImage >
void itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::operator= ( const Self  )  [private]
template<class TInputImage , class TOutputImage >
void itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected]
template<class TInputImage , class TOutputImage >
void itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::ThreadedGenerateData ( const OutputFieldRegionType outputRegionForThread,
int  threadId 
) [protected]

VelocityFieldLieBracketFilter can be implemented as a multithreaded filter. Therefore, this implementation provides a ThreadedGenerateData() routine which is called for each processing thread. The output image data is allocated automatically by the superclass prior to calling ThreadedGenerateData(). ThreadedGenerateData can only write to the portion of the output image specified by the parameter "outputRegionForThread"

See also:
ImageToImageFilter::ThreadedGenerateData(), ImageToImageFilter::GenerateData()

Member Data Documentation

template<class TInputImage , class TOutputImage >
InputFieldGradientCalculatorType::Pointer itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::m_LeftGradientCalculator [private]
template<class TInputImage , class TOutputImage >
InputFieldGradientCalculatorType::Pointer itk::VelocityFieldLieBracketFilter< TInputImage, TOutputImage >::m_RightGradientCalculator [private]

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

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1