ITK  4.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes
itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField > Class Template Reference

Warps an image using an input displacement field. More...

#include <itkWarpVectorImageFilter.h>

Inheritance diagram for itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >:
Collaboration diagram for itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef double CoordRepType
typedef
VectorLinearInterpolateImageFunction
< InputImageType, CoordRepType
DefaultInterpolatorType
typedef TOutputImage::DirectionType DirectionType
typedef
DisplacementFieldType::Pointer 
DisplacementFieldPointer
typedef TDisplacementField DisplacementFieldType
typedef
DisplacementFieldType::PixelType 
DisplacementType
typedef OutputImageType::IndexType IndexType
typedef
Superclass::InputImageConstPointer 
InputImageConstPointer
typedef
Superclass::InputImagePointer 
InputImagePointer
typedef Superclass::InputImageType InputImageType
typedef InterpolatorType::Pointer InterpolatorPointer
typedef
VectorInterpolateImageFunction
< InputImageType, CoordRepType
InterpolatorType
typedef
Superclass::OutputImagePointer 
OutputImagePointer
typedef TOutputImage::RegionType OutputImageRegionType
typedef Superclass::OutputImageType OutputImageType
typedef OutputImageType::PixelType PixelType
typedef SmartPointer< SelfPointer
typedef Point< CoordRepType,
itkGetStaticConstMacro(ImageDimension) > 
PointType
typedef WarpVectorImageFilter Self
typedef OutputImageType::SizeType SizeType
typedef
OutputImageType::SpacingType 
SpacingType
typedef ImageToImageFilter
< TInputImage, TOutputImage > 
Superclass
typedef
OutputImageType::PixelType::ValueType 
ValueType

Public Member Functions

virtual void BeforeThreadedGenerateData ()
virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual void GenerateInputRequestedRegion ()
virtual void GenerateOutputInformation ()
DisplacementFieldTypeGetDisplacementField (void)
virtual PixelType GetEdgePaddingValue () const
virtual InterpolatorTypeGetInterpolator ()
virtual const char * GetNameOfClass () const
virtual const PointTypeGetOutputOrigin ()
virtual const SpacingTypeGetOutputSpacing ()
void SetDisplacementField (DisplacementFieldType *field)
void SetDisplacementField (const DisplacementFieldType *field)
virtual void SetEdgePaddingValue (PixelType _arg)
virtual void SetInterpolator (InterpolatorType *_arg)
 typedef (Concept::HasNumericTraits< typename TDisplacementField::PixelType::ValueType >) DisplacementFieldHasNumericTraitsCheck
 typedef (Concept::HasNumericTraits< ValueType >) OutputHasNumericTraitsCheck
 typedef (Concept::HasNumericTraits< typename TInputImage::PixelType::ValueType >) InputHasNumericTraitsCheck
virtual void SetOutputSpacing (SpacingType _arg)
virtual void SetOutputSpacing (const double *values)
virtual void SetOutputOrigin (PointType _arg)
virtual void SetOutputOrigin (const double *values)
virtual void SetOutputDirection (DirectionType _arg)
virtual const DirectionTypeGetOutputDirection ()

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int ImageDimension = TOutputImage::ImageDimension
static const unsigned int PixelDimension = PixelType::Dimension

Protected Member Functions

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

Private Member Functions

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

Private Attributes

PixelType m_EdgePaddingValue
InterpolatorPointer m_Interpolator
DirectionType m_OutputDirection
PointType m_OutputOrigin
SpacingType m_OutputSpacing

Detailed Description

template<class TInputImage, class TOutputImage, class TDisplacementField>
class itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >

Warps an image using an input displacement field.

WarpVectorImageFilter warps an existing image with respect to a given displacement field. The input image is expected to have vector-like pixel types.

A displacement field is represented as a image whose pixel type is some vector type with at least N elements, where N is the dimension of the input image. The vector type must support element access via operator [].

The output image is produced by inverse mapping: the output pixels are mapped back onto the input image. This scheme avoids the creation of any holes and overlaps in the output image.

Each vector in the displacement field represent the distance between a geometric point in the input space and a point in the output space such that:

\[ p_{in} = p_{out} + d \]

Typically the mapped position does not correspond to an integer pixel position in the input image. Interpolation via an image function is used to compute values at non-integer positions. The default interpolation typed used is the LinearInterpolateImageFunction. The user can specify a particular interpolation function via SetInterpolator(). Note that the input interpolator must derive from base class InterpolateImageFunction.

Position mapped to outside of the input image buffer are assigned a edge padding value.

The LargetPossibleRegion for the output is inherited from the input displacement field. The output image spacing, origin and direction may be set via SetOutputSpacing, SetOutputOrigin and SetOutputDirection. The default are respectively a vector of 1's, a vector of 0's and an identity matrix.

This class is templated over the type of the input image, the type of the output image and the type of the displacement field.

The input image is set via SetInput. The input displacement field is set via SetDisplacementField.

This filter is implemented as a multithreaded filter.

Warning:
This filter assumes that the input type, output type and displacement field type all have the same number of dimensions.
WarpVectorImageFilter works only with input images of the type Image< Vector< T, D >, N > and not VectorImage< T, N >.
Author:
Corinne Mattmann

Definition at line 92 of file itkWarpVectorImageFilter.h.


Member Typedef Documentation

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef SmartPointer< const Self > itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::ConstPointer
template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef double itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::CoordRepType

Interpolator typedef support.

Definition at line 144 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef VectorLinearInterpolateImageFunction< InputImageType, CoordRepType > itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::DefaultInterpolatorType

Definition at line 148 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef TOutputImage::DirectionType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::DirectionType

Type for representing the direction of the output image

Definition at line 154 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef DisplacementFieldType::Pointer itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::DisplacementFieldPointer

Definition at line 134 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef TDisplacementField itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::DisplacementFieldType

Displacement field typedef support.

Definition at line 133 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef DisplacementFieldType::PixelType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::DisplacementType

Definition at line 135 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef OutputImageType::IndexType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::IndexType

Definition at line 118 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef Superclass::InputImageConstPointer itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::InputImageConstPointer
template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef Superclass::InputImagePointer itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::InputImagePointer
template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef Superclass::InputImageType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::InputImageType

Inherit some types from the superclass.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 112 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef InterpolatorType::Pointer itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::InterpolatorPointer

Definition at line 146 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef VectorInterpolateImageFunction< InputImageType, CoordRepType > itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::InterpolatorType

Definition at line 145 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef Superclass::OutputImagePointer itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::OutputImagePointer

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 115 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef TOutputImage::RegionType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::OutputImageRegionType

Typedef to describe the output image region type.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 106 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef Superclass::OutputImageType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::OutputImageType

Some convenient typedefs.

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 114 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef OutputImageType::PixelType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::PixelType

Definition at line 120 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef SmartPointer< Self > itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::Pointer
template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef Point< CoordRepType, itkGetStaticConstMacro(ImageDimension) > itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::PointType

Point type

Definition at line 151 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef WarpVectorImageFilter itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::Self

Standard class typedefs.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 97 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef OutputImageType::SizeType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SizeType

Definition at line 119 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef OutputImageType::SpacingType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SpacingType

Definition at line 121 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef ImageToImageFilter< TInputImage, TOutputImage > itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::Superclass
template<class TInputImage , class TOutputImage , class TDisplacementField >
typedef OutputImageType::PixelType::ValueType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::ValueType

Definition at line 122 of file itkWarpVectorImageFilter.h.


Constructor & Destructor Documentation

template<class TInputImage , class TOutputImage , class TDisplacementField >
itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::WarpVectorImageFilter ( ) [protected]

End concept checking

template<class TInputImage , class TOutputImage , class TDisplacementField >
itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::~WarpVectorImageFilter ( ) [inline, protected]

End concept checking

Definition at line 247 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::WarpVectorImageFilter ( const Self ) [private]

Member Function Documentation

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::BeforeThreadedGenerateData ( ) [virtual]

This method is used to set the state of the filter before multi-threading.

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual::itk::LightObject::Pointer itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::GenerateInputRequestedRegion ( ) [virtual]

It is difficult to compute in advance the input image region required to compute the requested output region. Thus the safest thing to do is to request for the whole input image.

For the displacement field, the input requested region set to be the same as that of the output requested region.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::GenerateOutputInformation ( ) [virtual]

WarpVectorImageFilter produces an image which is a different size than its input image. As such, it needs to provide an implemenation for GenerateOutputInformation() which set the output information according the OutputSpacing, OutputOrigin and the displacement field's LargestPossibleRegion.

Reimplemented from itk::ProcessObject.

template<class TInputImage , class TOutputImage , class TDisplacementField >
DisplacementFieldType* itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::GetDisplacementField ( void  )

Get a pointer the displacement field.

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual PixelType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::GetEdgePaddingValue ( ) const [virtual]

Get the edge padding value

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual InterpolatorType* itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::GetInterpolator ( ) [virtual]

Get a pointer to the interpolator function.

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual const char* itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods)

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual const DirectionType& itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::GetOutputDirection ( ) [virtual]

Set/Get the direction (orientation) of the output image

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual const PointType& itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::GetOutputOrigin ( ) [virtual]

Get the output image origin.

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual const SpacingType& itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::GetOutputSpacing ( ) [virtual]

Get the output image spacing.

template<class TInputImage , class TOutputImage , class TDisplacementField >
static Pointer itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TInputImage , class TOutputImage , class TDisplacementField >
void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::operator= ( const Self ) [private]

PushBackInput(), PushFronInput() in the public section force the input to be the type expected by an ImageToImageFilter. However, these methods end of "hiding" the versions from the superclass (ProcessObject) whose arguments are DataObjects. Here, we re-expose the versions from ProcessObject to avoid warnings about hiding methods from the superclass.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage , class TDisplacementField >
void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

End concept checking

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage , class TDisplacementField >
void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SetDisplacementField ( const DisplacementFieldType field)

Set the displacement field.

template<class TInputImage , class TOutputImage , class TDisplacementField >
void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SetDisplacementField ( DisplacementFieldType field)

Set the displacement field (non const for backward compatibility).

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SetEdgePaddingValue ( PixelType  _arg) [virtual]

Set the edge padding value

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SetInterpolator ( InterpolatorType _arg) [virtual]

Set the interpolator function.

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SetOutputDirection ( DirectionType  _arg) [virtual]

Set/Get the direction (orientation) of the output image

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SetOutputOrigin ( PointType  _arg) [virtual]

Set the output image origin.

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SetOutputOrigin ( const double *  values) [virtual]

Set the output image origin.

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SetOutputSpacing ( SpacingType  _arg) [virtual]

Set the output image spacing.

template<class TInputImage , class TOutputImage , class TDisplacementField >
virtual void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::SetOutputSpacing ( const double *  values) [virtual]

Set the output image spacing.

template<class TInputImage , class TOutputImage , class TDisplacementField >
void itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::ThreadedGenerateData ( const OutputImageRegionType outputRegionForThread,
ThreadIdType  threadId 
) [protected, virtual]

WarpVectorImageFilter is implemented as a multi-threaded filter. As such, it needs to provide and implementation for ThreadedGenerateData().

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage , class TOutputImage , class TDisplacementField >
itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::typedef ( Concept::HasNumericTraits< ValueType )

This class requires OutputHasNumericTraitsCheck in the form of ( Concept::HasNumericTraits< ValueType > )

template<class TInputImage , class TOutputImage , class TDisplacementField >
itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::typedef ( Concept::HasNumericTraits< typename TInputImage::PixelType::ValueType >  )

Begin concept checking This class requires InputHasNumericTraitsCheck in the form of ( Concept::HasNumericTraits< typename TInputImage::PixelType::ValueType > )

template<class TInputImage , class TOutputImage , class TDisplacementField >
itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::typedef ( Concept::HasNumericTraits< typename TDisplacementField::PixelType::ValueType >  )

This class requires DisplacementFieldHasNumericTraitsCheck in the form of ( Concept::HasNumericTraits< typename TDisplacementField::PixelType::ValueType > )


Member Data Documentation

template<class TInputImage , class TOutputImage , class TDisplacementField >
const unsigned int itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::ImageDimension = TOutputImage::ImageDimension [static]

Determine the image dimension.

Definition at line 126 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
PixelType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::m_EdgePaddingValue [private]

Definition at line 261 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
InterpolatorPointer itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::m_Interpolator [private]

Definition at line 266 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
DirectionType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::m_OutputDirection [private]

Definition at line 264 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
PointType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::m_OutputOrigin [private]

Definition at line 263 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
SpacingType itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::m_OutputSpacing [private]

Definition at line 262 of file itkWarpVectorImageFilter.h.

template<class TInputImage , class TOutputImage , class TDisplacementField >
const unsigned int itk::WarpVectorImageFilter< TInputImage, TOutputImage, TDisplacementField >::PixelDimension = PixelType::Dimension [static]

Dimension of the Vector pixel type.

Definition at line 130 of file itkWarpVectorImageFilter.h.


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