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>

Inheritance diagram for itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >:
Inheritance graph
[legend]
Collaboration diagram for itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >:
Collaboration 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
BSplineDerivativeKernelFunction2
< itkGetStaticConstMacro(SplineOrder) > 
DerivativeKernelType
 
typedef BSplineKernelFunction2
< itkGetStaticConstMacro(SplineOrder) > 
KernelType
 
typedef Matrix< double,
itkGetStaticConstMacro(SpaceDimension),
itkGetStaticConstMacro(SplineOrder)+1 > 
OneDWeightsType
 
typedef
BSplineSecondOrderDerivativeKernelFunction2
< itkGetStaticConstMacro(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 &)
 

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 66 of file itkBSplineInterpolationWeightFunctionBase.h.

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 76 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 101 of file itkBSplineInterpolationWeightFunctionBase.h.

template<class TCoordRep = float, unsigned int VSpaceDimension = 2, unsigned int VSplineOrder = 3>
typedef BSplineDerivativeKernelFunction2< itkGetStaticConstMacro( SplineOrder ) > itk::BSplineInterpolationWeightFunctionBase< TCoordRep, VSpaceDimension, VSplineOrder >::DerivativeKernelType
protected

Definition at line 134 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 97 of file itkBSplineInterpolationWeightFunctionBase.h.

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

Interpolation kernel types.

Definition at line 128 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 148 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 75 of file itkBSplineInterpolationWeightFunctionBase.h.

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

Definition at line 136 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 71 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 98 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 74 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 140 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 137 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 94 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 128 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 166 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 165 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 160 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 162 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 167 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 161 of file itkBSplineInterpolationWeightFunctionBase.h.



Generated on 06-12-2013 for elastix by doxygen 1.8.5 elastix logo