ITK  4.3.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType > Class Template Reference

#include <itkCoxDeBoorBSplineKernelFunction.h>

+ Inheritance diagram for itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >:
+ Collaboration diagram for itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >:

Detailed Description

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
class itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >

BSpline kernel used for density estimation and nonparameteric regression.

This class enscapsulates BSpline kernel for density estimation or nonparameteric regression. See documentation for KernelFunctionBase for more details.

This class is templated over the spline order to cohere with the previous incarnation of this class. One can change the order during an instantiation's existence. Note that other authors have defined the B-spline order as being the degree of spline + 1. In the ITK context (e.g. in this class), the spline order is equivalent to the degree of the spline.

Author
Nicholas J. Tustison

This code was contributed in the Insight Journal paper: "N-D C^k B-Spline Scattered Data Approximation" by Nicholas J. Tustison, James C. Gee http://hdl.handle.net/1926/140 http://www.insight-journal.org/browse/publication/57

See Also
KernelFunctionBase

Definition at line 57 of file itkCoxDeBoorBSplineKernelFunction.h.

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef vnl_matrix
< TRealValueType > 
MatrixType
 
typedef SmartPointer< SelfPointer
 
typedef vnl_real_polynomial PolynomialType
 
typedef Superclass::RealType RealType
 
typedef
CoxDeBoorBSplineKernelFunction 
Self
 
typedef KernelFunctionBase
< TRealValueType > 
Superclass
 
typedef vnl_vector
< TRealValueType > 
VectorType
 
- Public Types inherited from itk::KernelFunctionBase< TRealValueType >
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef TRealValueType RealType
 
typedef KernelFunctionBase Self
 
typedef FunctionBase
< TRealValueType,
TRealValueType > 
Superclass
 
- Public Types inherited from itk::FunctionBase< TRealValueType, TRealValueType >
typedef SmartPointer< const SelfConstPointer
 
typedef TRealValueType InputType
 
typedef TRealValueType OutputType
 
typedef SmartPointer< SelfPointer
 
typedef FunctionBase Self
 
typedef Object Superclass
 
- Public Types inherited from itk::Object
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef Object Self
 
typedef LightObject Superclass
 
- Public Types inherited from itk::LightObject
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef LightObject Self
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
TRealValueType Evaluate (const TRealValueType &) const
 
TRealValueType EvaluateDerivative (const TRealValueType &) const
 
TRealValueType EvaluateNthDerivative (const TRealValueType &, const unsigned int) const
 
virtual const char * GetNameOfClass () const
 
MatrixType GetShapeFunctions ()
 
MatrixType GetShapeFunctionsInZeroToOneInterval ()
 
virtual unsigned int GetSplineOrder () const
 
void SetSplineOrder (const unsigned int)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 CoxDeBoorBSplineKernelFunction ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
virtual ~CoxDeBoorBSplineKernelFunction ()
 
- Protected Member Functions inherited from itk::KernelFunctionBase< TRealValueType >
 KernelFunctionBase ()
 
virtual ~KernelFunctionBase ()
 
- Protected Member Functions inherited from itk::FunctionBase< TRealValueType, TRealValueType >
 FunctionBase ()
 
 ~FunctionBase ()
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
virtual void SetTimeStamp (const TimeStamp &time)
 
virtual ~Object ()
 
- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 
 LightObject ()
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual ~LightObject ()
 

Private Member Functions

PolynomialType CoxDeBoor (const unsigned short, const VectorType, const unsigned int, const unsigned int)
 
 CoxDeBoorBSplineKernelFunction (const Self &)
 
void GenerateBSplineShapeFunctions (const unsigned int)
 
void operator= (const Self &)
 

Private Attributes

MatrixType m_BSplineShapeFunctions
 
unsigned int m_SplineOrder
 

Additional Inherited Members

- Protected Types inherited from itk::LightObject
typedef int InternalReferenceCountType
 
- Protected Attributes inherited from itk::LightObject
InternalReferenceCountType m_ReferenceCount
 
SimpleFastMutexLock m_ReferenceCountLock
 

Member Typedef Documentation

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
typedef SmartPointer<const Self> itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::ConstPointer

Definition at line 65 of file itkCoxDeBoorBSplineKernelFunction.h.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
typedef vnl_matrix<TRealValueType> itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::MatrixType

Definition at line 77 of file itkCoxDeBoorBSplineKernelFunction.h.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
typedef SmartPointer<Self> itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::Pointer

Definition at line 64 of file itkCoxDeBoorBSplineKernelFunction.h.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
typedef vnl_real_polynomial itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::PolynomialType

Definition at line 76 of file itkCoxDeBoorBSplineKernelFunction.h.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
typedef Superclass::RealType itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::RealType

Definition at line 67 of file itkCoxDeBoorBSplineKernelFunction.h.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
typedef CoxDeBoorBSplineKernelFunction itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::Self

Standard class typedefs.

Definition at line 62 of file itkCoxDeBoorBSplineKernelFunction.h.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
typedef KernelFunctionBase<TRealValueType> itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::Superclass

Definition at line 63 of file itkCoxDeBoorBSplineKernelFunction.h.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
typedef vnl_vector<TRealValueType> itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::VectorType

Definition at line 73 of file itkCoxDeBoorBSplineKernelFunction.h.

Constructor & Destructor Documentation

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::CoxDeBoorBSplineKernelFunction ( )
protected
template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
virtual itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::~CoxDeBoorBSplineKernelFunction ( )
protectedvirtual
template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::CoxDeBoorBSplineKernelFunction ( const Self )
private

Member Function Documentation

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
PolynomialType itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::CoxDeBoor ( const unsigned  short,
const VectorType  ,
const unsigned  int,
const unsigned  int 
)
private

Use the CoxDeBoor recursion relation to generate the piecewise polynomials which compose the basis function. See, for example, L. Piegl, L. Tiller, "The NURBS Book," Springer 1997, p. 50.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
virtual::itk::LightObject::Pointer itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::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<unsigned int VSplineOrder = 3, typename TRealValueType = double>
TRealValueType itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::Evaluate ( const TRealValueType &  ) const
virtual

Evaluate the function.

Implements itk::KernelFunctionBase< TRealValueType >.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
TRealValueType itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::EvaluateDerivative ( const TRealValueType &  ) const

Evaluate the first derivative.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
TRealValueType itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::EvaluateNthDerivative ( const TRealValueType &  ,
const unsigned  int 
) const

Evaluate the Nth derivative.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
void itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::GenerateBSplineShapeFunctions ( const unsigned  int)
private

For a specific order, generate the (this->m_SplineOrder+1) pieces of the single basis function centered at zero.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
virtual const char* itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::KernelFunctionBase< TRealValueType >.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
MatrixType itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::GetShapeFunctions ( )

For a specific order, return the ceil( 0.5*(m_SplineOrder+1) ) pieces of the single basis function centered at zero for positive parametric values.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
MatrixType itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::GetShapeFunctionsInZeroToOneInterval ( )

For a specific order, generate and return the (this->m_SplineOrder+1) pieces of the different basis functions in the [0, 1] interval.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
virtual unsigned int itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::GetSplineOrder ( ) const
virtual

Get the spline order.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
static Pointer itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::New ( )
static

Method for creation through the object factory.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
void itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::operator= ( const Self )
private
template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
void itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::KernelFunctionBase< TRealValueType >.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
void itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::SetSplineOrder ( const unsigned  int)

Set the spline order.

Member Data Documentation

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
MatrixType itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::m_BSplineShapeFunctions
private

Definition at line 131 of file itkCoxDeBoorBSplineKernelFunction.h.

template<unsigned int VSplineOrder = 3, typename TRealValueType = double>
unsigned int itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::m_SplineOrder
private

Definition at line 132 of file itkCoxDeBoorBSplineKernelFunction.h.


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