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

#include <itkCoxDeBoorBSplineKernelFunction.h>

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

List of all members.

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 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 ()

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

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.


Member Typedef Documentation

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

Reimplemented from itk::KernelFunctionBase< TRealValueType >.

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

Reimplemented from itk::KernelFunctionBase< TRealValueType >.

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

Reimplemented from itk::KernelFunctionBase< TRealValueType >.

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.

Reimplemented from itk::KernelFunctionBase< TRealValueType >.

Definition at line 62 of file itkCoxDeBoorBSplineKernelFunction.h.

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

Reimplemented from itk::KernelFunctionBase< TRealValueType >.

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 ( ) [protected, virtual]
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.

Reimplemented from itk::Object.

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 [protected, virtual]

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: