go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage > Class Template Reference

#include <itkMultiOrderBSplineDecompositionImageFilter.h>

Detailed Description

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

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

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. Can only process LargestPossibleRegion

See also
itkBSplineInterpolateImageFunction

***TODO: Is this an ImageFilter? or does it belong to another group?

Definition at line 82 of file itkMultiOrderBSplineDecompositionImageFilter.h.

+ Inheritance diagram for itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >:

Public Types

typedef itk::NumericTraits< typenameTOutputImage::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 MultiOrderBSplineDecompositionImageFilter Self
 
typedef ImageToImageFilter< TInputImage, TOutputImage > Superclass
 

Public Member Functions

virtual const char * GetClassName () const
 
void GetSplineOrder (unsigned int dimension)
 
 itkStaticConstMacro (ImageDimension, unsigned int, TInputImage::ImageDimension)
 
 itkStaticConstMacro (OutputImageDimension, unsigned int, TOutputImage::ImageDimension)
 
void SetSplineOrder (unsigned int dimension, unsigned int order)
 
void SetSplineOrder (unsigned int order)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

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

Protected Attributes

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

Private Member Functions

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

Member Typedef Documentation

◆ CoeffType

template<class TInputImage , class TOutputImage >
typedef itk::NumericTraits<typenameTOutputImage::PixelType>::RealType itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::CoeffType

◆ ConstPointer

template<class TInputImage , class TOutputImage >
typedef SmartPointer< const Self > itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::ConstPointer

◆ InputImageConstPointer

template<class TInputImage , class TOutputImage >
typedef Superclass::InputImageConstPointer itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::InputImageConstPointer

◆ InputImagePointer

template<class TInputImage , class TOutputImage >
typedef Superclass::InputImagePointer itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::InputImagePointer

◆ InputImageType

template<class TInputImage , class TOutputImage >
typedef Superclass::InputImageType itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::InputImageType

Inherit input and output image types from Superclass.

Definition at line 100 of file itkMultiOrderBSplineDecompositionImageFilter.h.

◆ OutputImagePointer

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

◆ OutputLinearIterator

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

Iterator typedef support

Definition at line 113 of file itkMultiOrderBSplineDecompositionImageFilter.h.

◆ Pointer

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

◆ Self

template<class TInputImage , class TOutputImage >
typedef MultiOrderBSplineDecompositionImageFilter itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::Self

Standard class typedefs.

Definition at line 88 of file itkMultiOrderBSplineDecompositionImageFilter.h.

◆ Superclass

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

Constructor & Destructor Documentation

◆ MultiOrderBSplineDecompositionImageFilter() [1/2]

template<class TInputImage , class TOutputImage >
itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::MultiOrderBSplineDecompositionImageFilter ( )
protected

◆ ~MultiOrderBSplineDecompositionImageFilter()

template<class TInputImage , class TOutputImage >
itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::~MultiOrderBSplineDecompositionImageFilter ( )
inlineoverrideprotected

◆ MultiOrderBSplineDecompositionImageFilter() [2/2]

template<class TInputImage , class TOutputImage >
itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::MultiOrderBSplineDecompositionImageFilter ( const Self )
private

Member Function Documentation

◆ CopyCoefficientsToScratch()

template<class TInputImage , class TOutputImage >
void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::CopyCoefficientsToScratch ( OutputLinearIterator )
private

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

◆ CopyImageToImage()

template<class TInputImage , class TOutputImage >
void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::CopyImageToImage ( )
private

Used to initialize the Coefficients image before calculation.

◆ CopyScratchToCoefficients()

template<class TInputImage , class TOutputImage >
void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::CopyScratchToCoefficients ( OutputLinearIterator )
private

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

◆ DataToCoefficients1D()

template<class TInputImage , class TOutputImage >
virtual bool itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::DataToCoefficients1D ( )
privatevirtual

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

◆ DataToCoefficientsND()

template<class TInputImage , class TOutputImage >
void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::DataToCoefficientsND ( )
private

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

◆ EnlargeOutputRequestedRegion()

template<class TInputImage , class TOutputImage >
void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::EnlargeOutputRequestedRegion ( DataObject *  output)
overrideprotected

This filter must produce all of its output at once.

◆ GenerateData()

template<class TInputImage , class TOutputImage >
void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::GenerateData ( )
overrideprotected

◆ GenerateInputRequestedRegion()

template<class TInputImage , class TOutputImage >
void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::GenerateInputRequestedRegion ( )
overrideprotected

This filter requires all of the input image.

◆ GetClassName()

template<class TInputImage , class TOutputImage >
virtual const char * itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

◆ GetSplineOrder()

template<class TInputImage , class TOutputImage >
void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::GetSplineOrder ( unsigned int  dimension)
inline

◆ itkStaticConstMacro() [1/2]

template<class TInputImage , class TOutputImage >
itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::itkStaticConstMacro ( ImageDimension  ,
unsigned int  ,
TInputImage::ImageDimension   
)

Dimension underlying input image.

◆ itkStaticConstMacro() [2/2]

template<class TInputImage , class TOutputImage >
itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::itkStaticConstMacro ( OutputImageDimension  ,
unsigned int  ,
TOutputImage::ImageDimension   
)

◆ New()

template<class TInputImage , class TOutputImage >
static Pointer itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::New ( )
static

New macro for creation of through a Smart Pointer

◆ operator=()

template<class TInputImage , class TOutputImage >
void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::operator= ( const Self )
private

◆ PrintSelf()

template<class TInputImage , class TOutputImage >
void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotected

◆ SetInitialAntiCausalCoefficient()

template<class TInputImage , class TOutputImage >
virtual void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::SetInitialAntiCausalCoefficient ( double  z)
privatevirtual

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

◆ SetInitialCausalCoefficient()

template<class TInputImage , class TOutputImage >
virtual void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::SetInitialCausalCoefficient ( double  z)
privatevirtual

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

◆ SetPoles()

template<class TInputImage , class TOutputImage >
virtual void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::SetPoles ( unsigned int  dimension)
privatevirtual

Determines the poles for dimension given the Spline Order.

◆ SetSplineOrder() [1/2]

template<class TInputImage , class TOutputImage >
void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::SetSplineOrder ( unsigned int  dimension,
unsigned int  order 
)

◆ SetSplineOrder() [2/2]

template<class TInputImage , class TOutputImage >
void itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::SetSplineOrder ( unsigned int  order)

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

Field Documentation

◆ m_DataLength

template<class TInputImage , class TOutputImage >
TInputImage::SizeType itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::m_DataLength
protected

◆ m_IteratorDirection

template<class TInputImage , class TOutputImage >
unsigned int itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::m_IteratorDirection
protected

◆ m_NumberOfPoles

template<class TInputImage , class TOutputImage >
int itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::m_NumberOfPoles
protected

◆ m_Scratch

template<class TInputImage , class TOutputImage >
std::vector< CoeffType > itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::m_Scratch
protected

These are needed by the smoothing spline routine.

Definition at line 156 of file itkMultiOrderBSplineDecompositionImageFilter.h.

◆ m_SplineOrder

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

◆ m_SplinePoles

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

◆ m_Tolerance

template<class TInputImage , class TOutputImage >
double itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::m_Tolerance
protected


Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo