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

Calculates the B-Spline coefficients of an image. Spline order may be from 0 to 5. More...

#include <itkBSplineDecompositionImageFilter.h>

Inheritance diagram for itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >:
Collaboration diagram for itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >:

List of all members.

Public Types

typedef itk::NumericTraits
< typename
TOutputImage::PixelType >
::RealType 
CoeffType
typedef SmartPointer< const SelfConstPointer
typedef
Superclass::InputImageConstPointer 
InputImageConstPointer
typedef
Superclass::InputImagePointer 
InputImagePointer
typedef Superclass::InputImageType InputImageType
typedef
Superclass::OutputImagePointer 
OutputImagePointer
typedef
ImageLinearIteratorWithIndex
< TOutputImage > 
OutputLinearIterator
typedef SmartPointer< SelfPointer
typedef
BSplineDecompositionImageFilter 
Self
typedef ImageToImageFilter
< TInputImage, TOutputImage > 
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
virtual int GetSplineOrder () const
void SetSplineOrder (unsigned int SplineOrder)
 typedef (Concept::Convertible< double, typename TOutputImage::PixelType >) DoubleConvertibleToOutputCheck
 typedef (Concept::SameDimension< ImageDimension, OutputImageDimension >) DimensionCheck
 typedef (Concept::Convertible< typename TInputImage::PixelType, typename TOutputImage::PixelType >) InputConvertibleToOutputCheck

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int ImageDimension = TInputImage::ImageDimension
static const unsigned int OutputImageDimension = TOutputImage::ImageDimension

Protected Member Functions

void EnlargeOutputRequestedRegion (DataObject *output)
void GenerateData ()
void GenerateInputRequestedRegion ()
 BSplineDecompositionImageFilter ()
virtual ~BSplineDecompositionImageFilter ()
void PrintSelf (std::ostream &os, Indent indent) const

Protected Attributes

TInputImage::SizeType m_DataLength
unsigned int m_IteratorDirection
int m_NumberOfPoles
std::vector< CoeffTypem_Scratch
unsigned int m_SplineOrder
double m_SplinePoles [3]
double m_Tolerance

Private Member Functions

 BSplineDecompositionImageFilter (const Self &)
void CopyCoefficientsToScratch (OutputLinearIterator &)
void CopyImageToImage ()
void CopyScratchToCoefficients (OutputLinearIterator &)
virtual bool DataToCoefficients1D ()
void DataToCoefficientsND ()
void operator= (const Self &)
virtual void SetInitialAntiCausalCoefficient (double z)
virtual void SetInitialCausalCoefficient (double z)
virtual void SetPoles ()

Detailed Description

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

Calculates the B-Spline coefficients of an image. Spline order may be from 0 to 5.

This class defines N-Dimension B-Spline transformation. It is based on: [1] M. Unser, "Splines: A Perfect Fit for Signal and Image Processing," IEEE Signal Processing Magazine, vol. 16, no. 6, pp. 22-38, November 1999. [2] M. Unser, A. Aldroubi and M. Eden, "B-Spline Signal Processing: Part I--Theory," IEEE Transactions on Signal Processing, vol. 41, no. 2, pp. 821-832, February 1993. [3] M. Unser, A. Aldroubi and M. Eden, "B-Spline Signal Processing: Part II--Efficient Design and Applications," IEEE Transactions on Signal Processing, vol. 41, no. 2, pp. 834-848, February 1993. And code obtained from bigwww.epfl.ch by Philippe Thevenaz

Limitations: Spline order must be between 0 and 5. Spline order must be set before setting the image. Uses mirror boundary conditions. Requires the same order of Spline for each dimension. Can only process LargestPossibleRegion

See also:
itkBSplineInterpolateImageFunction

Definition at line 73 of file itkBSplineDecompositionImageFilter.h.


Member Typedef Documentation

template<class TInputImage , class TOutputImage >
typedef itk::NumericTraits< typename TOutputImage::PixelType >::RealType itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::CoeffType

Definition at line 95 of file itkBSplineDecompositionImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef SmartPointer< const Self > itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::ConstPointer
template<class TInputImage , class TOutputImage >
typedef Superclass::InputImageConstPointer itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::InputImageConstPointer
template<class TInputImage , class TOutputImage >
typedef Superclass::InputImagePointer itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::InputImagePointer
template<class TInputImage , class TOutputImage >
typedef Superclass::InputImageType itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::InputImageType

Inherit input and output image types from Superclass.

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

Definition at line 87 of file itkBSplineDecompositionImageFilter.h.

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

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 93 of file itkBSplineDecompositionImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef ImageLinearIteratorWithIndex< TOutputImage > itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::OutputLinearIterator

Iterator typedef support

Definition at line 104 of file itkBSplineDecompositionImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef SmartPointer< Self > itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::Pointer
template<class TInputImage , class TOutputImage >
typedef BSplineDecompositionImageFilter itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::Self

Standard class typedefs.

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

Definition at line 78 of file itkBSplineDecompositionImageFilter.h.

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

Constructor & Destructor Documentation

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

End concept checking

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

End concept checking

Definition at line 126 of file itkBSplineDecompositionImageFilter.h.

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

Member Function Documentation

template<class TInputImage , class TOutputImage >
void itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::CopyCoefficientsToScratch ( OutputLinearIterator ) [private]

Copies a vector of data from the Coefficients image to the m_Scratch vector.

template<class TInputImage , class TOutputImage >
void itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::CopyImageToImage ( ) [private]

Used to initialize the Coefficients image before calculation.

template<class TInputImage , class TOutputImage >
void itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::CopyScratchToCoefficients ( OutputLinearIterator ) [private]

Copies a vector of data from m_Scratch to the Coefficients image.

template<class TInputImage , class TOutputImage >
virtual::itk::LightObject::Pointer itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::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 >
virtual bool itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::DataToCoefficients1D ( ) [private, virtual]

Converts a vector of data to a vector of Spline coefficients.

template<class TInputImage , class TOutputImage >
void itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::DataToCoefficientsND ( ) [private]

Converts an N-dimension image of data to an equivalent sized image of spline coefficients.

template<class TInputImage , class TOutputImage >
void itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::EnlargeOutputRequestedRegion ( DataObject output) [protected, virtual]

This filter must produce all of its output at once.

Reimplemented from itk::ProcessObject.

template<class TInputImage , class TOutputImage >
void itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::GenerateData ( ) [protected, virtual]

A version of GenerateData() specific for image processing filters. This implementation will split the processing across multiple threads. The buffer is allocated by this method. Then the BeforeThreadedGenerateData() method is called (if provided). Then, a series of threads are spawned each calling ThreadedGenerateData(). After all the threads have completed processing, the AfterThreadedGenerateData() method is called (if provided). If an image processing filter cannot be threaded, the filter should provide an implementation of GenerateData(). That implementation is responsible for allocating the output buffer. If a filter an be threaded, it should NOT provide a GenerateData() method but should provide a ThreadedGenerateData() instead.

See also:
ThreadedGenerateData()

Reimplemented from itk::ImageSource< TOutputImage >.

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

This filter requires all of the input image.

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

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

Run-time type information (and related methods).

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

template<class TInputImage , class TOutputImage >
virtual int itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::GetSplineOrder ( ) const [virtual]
template<class TInputImage , class TOutputImage >
static Pointer itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::New ( ) [static]

New macro for creation of through a Smart Pointer

Reimplemented from itk::Object.

template<class TInputImage , class TOutputImage >
void itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::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 >
void itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

End concept checking

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

template<class TInputImage , class TOutputImage >
virtual void itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::SetInitialAntiCausalCoefficient ( double  z) [private, virtual]

Determines the first coefficient for the anti-causal filtering of the data.

template<class TInputImage , class TOutputImage >
virtual void itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::SetInitialCausalCoefficient ( double  z) [private, virtual]

Determines the first coefficient for the causal filtering of the data.

template<class TInputImage , class TOutputImage >
virtual void itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::SetPoles ( ) [private, virtual]

Determines the poles given the Spline Order.

template<class TInputImage , class TOutputImage >
void itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::SetSplineOrder ( unsigned int  SplineOrder)

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

template<class TInputImage , class TOutputImage >
itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::typedef ( Concept::SameDimension< ImageDimension, OutputImageDimension )

Begin concept checking This class requires DimensionCheck in the form of ( Concept::SameDimension< ImageDimension, OutputImageDimension > )

template<class TInputImage , class TOutputImage >
itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::typedef ( Concept::Convertible< double, typename TOutputImage::PixelType >  )

This class requires DoubleConvertibleToOutputCheck in the form of ( Concept::Convertible< double, typename TOutputImage::PixelType > )

template<class TInputImage , class TOutputImage >
itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::typedef ( Concept::Convertible< typename TInputImage::PixelType, typename TOutputImage::PixelType >  )

This class requires InputConvertibleToOutputCheck in the form of ( Concept::Convertible< typename TInputImage::PixelType, typename TOutputImage::PixelType > )


Member Data Documentation

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

Dimension underlying input image.

Definition at line 98 of file itkBSplineDecompositionImageFilter.h.

template<class TInputImage , class TOutputImage >
TInputImage::SizeType itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::m_DataLength [protected]

Definition at line 141 of file itkBSplineDecompositionImageFilter.h.

template<class TInputImage , class TOutputImage >
unsigned int itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::m_IteratorDirection [protected]

Definition at line 151 of file itkBSplineDecompositionImageFilter.h.

template<class TInputImage , class TOutputImage >
int itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::m_NumberOfPoles [protected]

Definition at line 147 of file itkBSplineDecompositionImageFilter.h.

template<class TInputImage , class TOutputImage >
std::vector< CoeffType > itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::m_Scratch [protected]

These are needed by the smoothing spline routine.

Definition at line 139 of file itkBSplineDecompositionImageFilter.h.

template<class TInputImage , class TOutputImage >
unsigned int itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::m_SplineOrder [protected]

Definition at line 143 of file itkBSplineDecompositionImageFilter.h.

template<class TInputImage , class TOutputImage >
double itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::m_SplinePoles[3] [protected]

Definition at line 145 of file itkBSplineDecompositionImageFilter.h.

template<class TInputImage , class TOutputImage >
double itk::BSplineDecompositionImageFilter< TInputImage, TOutputImage >::m_Tolerance [protected]

Definition at line 149 of file itkBSplineDecompositionImageFilter.h.

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

Dimension underlying input image.

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

Definition at line 100 of file itkBSplineDecompositionImageFilter.h.


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