go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
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 81 of file itkMultiOrderBSplineDecompositionImageFilter.h.

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

Public Types

using CoeffType = typename itk::NumericTraits<typename TOutputImage::PixelType>::RealType
 
using ConstPointer = SmartPointer<const Self>
 
using OutputLinearIterator = ImageLinearIteratorWithIndex<TOutputImage>
 
using Pointer = SmartPointer<Self>
 
using Self = MultiOrderBSplineDecompositionImageFilter
 
using Superclass = ImageToImageFilter<TInputImage, TOutputImage>
 

Public Member Functions

virtual const char * GetClassName () const
 
void GetSplineOrder (unsigned int dimension)
 
 ITK_DISALLOW_COPY_AND_MOVE (MultiOrderBSplineDecompositionImageFilter)
 
 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=default
 

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 ()
 
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 >
using itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::CoeffType = typename itk::NumericTraits<typename TOutputImage::PixelType>::RealType

◆ ConstPointer

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

◆ OutputLinearIterator

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

Iterator typedef support

Definition at line 112 of file itkMultiOrderBSplineDecompositionImageFilter.h.

◆ Pointer

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

◆ Self

template<class TInputImage , class TOutputImage >
using itk::MultiOrderBSplineDecompositionImageFilter< TInputImage, TOutputImage >::Self = MultiOrderBSplineDecompositionImageFilter

Standard class typedefs.

Definition at line 88 of file itkMultiOrderBSplineDecompositionImageFilter.h.

◆ Superclass

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

Constructor & Destructor Documentation

◆ MultiOrderBSplineDecompositionImageFilter()

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

◆ ~MultiOrderBSplineDecompositionImageFilter()

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

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

◆ ITK_DISALLOW_COPY_AND_MOVE()

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

◆ 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

◆ 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 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo