ITK
4.3.0
Insight Segmentation and Registration Toolkit
|
#include <itkCoxDeBoorBSplineKernelFunction.h>
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.
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
Definition at line 57 of file itkCoxDeBoorBSplineKernelFunction.h.
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 |
typedef SmartPointer<const Self> itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::ConstPointer |
Definition at line 65 of file itkCoxDeBoorBSplineKernelFunction.h.
typedef vnl_matrix<TRealValueType> itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::MatrixType |
Definition at line 77 of file itkCoxDeBoorBSplineKernelFunction.h.
typedef SmartPointer<Self> itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::Pointer |
Definition at line 64 of file itkCoxDeBoorBSplineKernelFunction.h.
typedef vnl_real_polynomial itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::PolynomialType |
Definition at line 76 of file itkCoxDeBoorBSplineKernelFunction.h.
typedef Superclass::RealType itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::RealType |
Definition at line 67 of file itkCoxDeBoorBSplineKernelFunction.h.
typedef CoxDeBoorBSplineKernelFunction itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::Self |
Standard class typedefs.
Definition at line 62 of file itkCoxDeBoorBSplineKernelFunction.h.
typedef KernelFunctionBase<TRealValueType> itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::Superclass |
Definition at line 63 of file itkCoxDeBoorBSplineKernelFunction.h.
typedef vnl_vector<TRealValueType> itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::VectorType |
Definition at line 73 of file itkCoxDeBoorBSplineKernelFunction.h.
|
protected |
|
protectedvirtual |
|
private |
|
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.
|
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.
|
virtual |
Evaluate the function.
Implements itk::KernelFunctionBase< TRealValueType >.
TRealValueType itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::EvaluateDerivative | ( | const TRealValueType & | ) | const |
Evaluate the first derivative.
TRealValueType itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::EvaluateNthDerivative | ( | const TRealValueType & | , |
const unsigned | int | ||
) | const |
Evaluate the Nth derivative.
|
private |
For a specific order, generate the (this->m_SplineOrder+1) pieces of the single basis function centered at zero.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::KernelFunctionBase< TRealValueType >.
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.
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.
|
virtual |
Get the spline order.
|
static |
Method for creation through the object factory.
|
private |
|
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 >.
void itk::CoxDeBoorBSplineKernelFunction< VSplineOrder, TRealValueType >::SetSplineOrder | ( | const unsigned | int | ) |
Set the spline order.
|
private |
Definition at line 131 of file itkCoxDeBoorBSplineKernelFunction.h.
|
private |
Definition at line 132 of file itkCoxDeBoorBSplineKernelFunction.h.