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 | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions
itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder > Class Template Referenceabstract

#include <itkBSplineInterpolationWeightFunctionBase.h>

Detailed Description

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
class itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >

Returns the weights over the support region used for B-spline interpolation/reconstruction.

Computes/evaluate the B-spline interpolation weights over the support region of the B-spline.

This class is templated over the coordinate representation type, the space dimension and the spline order.

See also
Point
Index
ContinuousIndex

Definition at line 71 of file itkBSplineInterpolationWeightFunctionBase.h.

Inheritance diagram for itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >:
Inheritance graph
[legend]

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef ContinuousIndex< TCoordRep, VSpaceDimension > ContinuousIndexType
 
typedef Index< VSpaceDimension > IndexType
 
typedef SmartPointer< SelfPointer
 
typedef BSplineInterpolationWeightFunctionBase Self
 
typedef Size< VSpaceDimension > SizeType
 
typedef FunctionBase< ContinuousIndex< TCoordRep, VSpaceDimension >, Array< double > > Superclass
 
typedef Array< doubleWeightsType
 

Public Member Functions

void ComputeStartIndex (const ContinuousIndexType &index, IndexType &startIndex) const
 
virtual WeightsType Evaluate (const ContinuousIndexType &index) const
 
virtual void Evaluate (const ContinuousIndexType &cindex, const IndexType &startIndex, WeightsType &weights) const
 
virtual const char * GetClassName () const
 
virtual unsigned long GetNumberOfWeights () const
 
virtual const SizeTypeGetSupportSize ()
 
 itkStaticConstMacro (SpaceDimension, unsigned int, VSpaceDimension)
 
 itkStaticConstMacro (SplineOrder, unsigned int, VSplineOrder)
 
 itkStaticConstMacro (NumberOfWeights, unsigned long, GetConstNumberOfWeightsHackType::Value)
 

Protected Types

typedef DerivativeKernelType::Pointer DerivativeKernelPointer
 
typedef BSplineDerivativeKernelFunction< Self::SplineOrder > DerivativeKernelType
 
typedef KernelType::Pointer KernelPointer
 
typedef BSplineKernelFunction2< Self::SplineOrder > KernelType
 
typedef Matrix< double, itkGetStaticConstMacro(SpaceDimension), itkGetStaticConstMacro(SplineOrder)+1 > OneDWeightsType
 
typedef SecondOrderDerivativeKernelType::Pointer SecondOrderDerivativeKernelPointer
 
typedef BSplineSecondOrderDerivativeKernelFunction2< Self::SplineOrder > SecondOrderDerivativeKernelType
 
typedef Array2D< unsigned long > TableType
 
typedef KernelType::WeightArrayType WeightArrayType
 

Protected Member Functions

 BSplineInterpolationWeightFunctionBase ()
 
virtual void Compute1DWeights (const ContinuousIndexType &index, const IndexType &startIndex, OneDWeightsType &weights1D) const =0
 
virtual void PrintSelf (std::ostream &os, Indent indent) const
 
 ~BSplineInterpolationWeightFunctionBase ()
 

Protected Attributes

DerivativeKernelType::Pointer m_DerivativeKernel
 
KernelType::Pointer m_Kernel
 
unsigned long m_NumberOfWeights
 
TableType m_OffsetToIndexTable
 
SecondOrderDerivativeKernelType::Pointer m_SecondOrderDerivativeKernel
 
SizeType m_SupportSize
 

Private Member Functions

 BSplineInterpolationWeightFunctionBase (const Self &)
 
void InitializeOffsetToIndexTable (void)
 
void InitializeSupport (void)
 
void operator= (const Self &)
 

Member Typedef Documentation

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef SmartPointer< const Self > itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::ConstPointer

Definition at line 82 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef ContinuousIndex< TCoordRep, VSpaceDimension > itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::ContinuousIndexType

ContinuousIndex typedef support.

Definition at line 107 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef DerivativeKernelType::Pointer itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::DerivativeKernelPointer
protected

Definition at line 141 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef BSplineDerivativeKernelFunction< Self::SplineOrder > itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::DerivativeKernelType
protected

Definition at line 140 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef Index< VSpaceDimension > itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::IndexType

Index and size typedef support.

Definition at line 103 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef KernelType::Pointer itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::KernelPointer
protected

Definition at line 139 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef BSplineKernelFunction2< Self::SplineOrder > itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::KernelType
protected

Interpolation kernel types.

Definition at line 138 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef Matrix< double, itkGetStaticConstMacro( SpaceDimension ), itkGetStaticConstMacro( SplineOrder ) + 1 > itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::OneDWeightsType
protected

Typedef for intermediary 1D weights. The Matrix is at least twice as fast as std::vector< vnl_vector< double > >, probably because of the fixed size at compile time.

Definition at line 155 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef SmartPointer< Self > itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::Pointer

Definition at line 81 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef SecondOrderDerivativeKernelType::Pointer itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::SecondOrderDerivativeKernelPointer
protected

Definition at line 143 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef BSplineSecondOrderDerivativeKernelFunction2< Self::SplineOrder > itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::SecondOrderDerivativeKernelType
protected

Definition at line 142 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef BSplineInterpolationWeightFunctionBase itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::Self

Standard class typedefs.

Definition at line 77 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef Size< VSpaceDimension > itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::SizeType

Definition at line 104 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef FunctionBase< ContinuousIndex< TCoordRep, VSpaceDimension >, Array< double > > itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::Superclass

Definition at line 80 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef Array2D< unsigned long > itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::TableType
protected

Lookup table type.

Definition at line 147 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef KernelType::WeightArrayType itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::WeightArrayType
protected

Definition at line 144 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef Array< double > itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::WeightsType

OutputType typedef support.

Definition at line 100 of file itkBSplineInterpolationWeightFunctionBase.h.

Constructor & Destructor Documentation

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::BSplineInterpolationWeightFunctionBase ( )
protected
template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::~BSplineInterpolationWeightFunctionBase ( )
inlineprotected

Definition at line 135 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::BSplineInterpolationWeightFunctionBase ( const Self )
private

Member Function Documentation

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
virtual void itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::Compute1DWeights ( const ContinuousIndexType index,
const IndexType startIndex,
OneDWeightsType weights1D 
) const
protectedpure virtual
template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
void itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::ComputeStartIndex ( const ContinuousIndexType index,
IndexType startIndex 
) const

Compute the start index of the support region.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
virtual WeightsType itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::Evaluate ( const ContinuousIndexType index) const
virtual

Evaluate the weights at specified ContinousIndex position.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
virtual void itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::Evaluate ( const ContinuousIndexType cindex,
const IndexType startIndex,
WeightsType weights 
) const
virtual

Evaluate the weights at specified ContinousIndex position. The weights are returned in the user specified container. This function assume that the weights has a correct size. For efficiency, no size checking is done. On return, startIndex contains the start index of the support region over which the weights are defined.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
virtual const char* itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::GetClassName ( ) const
virtual
template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
virtual unsigned long itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::GetNumberOfWeights ( ) const
virtual

Get number of weights.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
virtual const SizeType& itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::GetSupportSize ( )
virtual

Get support region size.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
void itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::InitializeOffsetToIndexTable ( void  )
private

Function to initialize the offset table. The offset table is a convenience table, just to keep track where is what.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
void itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::InitializeSupport ( void  )
private

Function to initialize the support region.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::itkStaticConstMacro ( SpaceDimension  ,
unsigned  int,
VSpaceDimension   
)

Space dimension.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::itkStaticConstMacro ( SplineOrder  ,
unsigned  int,
VSplineOrder   
)

Spline order.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::itkStaticConstMacro ( NumberOfWeights  ,
unsigned  long,
GetConstNumberOfWeightsHackType::Value   
)
template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
void itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::operator= ( const Self )
private
template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
virtual void itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

Field Documentation

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
DerivativeKernelType::Pointer itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::m_DerivativeKernel
protected

Definition at line 173 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
KernelType::Pointer itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::m_Kernel
protected

Interpolation kernels.

Definition at line 172 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
unsigned long itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::m_NumberOfWeights
protected

Member variables.

Definition at line 167 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
TableType itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::m_OffsetToIndexTable
protected

Definition at line 169 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
SecondOrderDerivativeKernelType::Pointer itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::m_SecondOrderDerivativeKernel
protected

Definition at line 174 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
SizeType itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::m_SupportSize
protected

Definition at line 168 of file itkBSplineInterpolationWeightFunctionBase.h.



Generated on 04-09-2015 for elastix by doxygen 1.8.9.1 elastix logo