Go to the documentation of this file.
18 #ifndef __itkBSplineInterpolationWeightFunctionBase_h
19 #define __itkBSplineInterpolationWeightFunctionBase_h
21 #include "itkFunctionBase.h"
22 #include "itkContinuousIndex.h"
24 #include "itkArray2D.h"
25 #include "itkMatrix.h"
27 #include "itkBSplineDerivativeKernelFunction.h"
34 template<
unsigned int SplineOrder,
unsigned int Dimension >
35 class GetConstNumberOfWeightsHack
39 typedef GetConstNumberOfWeightsHack< SplineOrder, Dimension - 1 > OneDimensionLess;
40 itkStaticConstMacro( Value,
unsigned long, ( SplineOrder + 1 ) * OneDimensionLess::Value );
44 template<
unsigned int SplineOrder >
45 class GetConstNumberOfWeightsHack< SplineOrder, 0 >
49 itkStaticConstMacro( Value,
unsigned long, 1 );
68 template<
class TCoordRep =
float,
69 unsigned int VSpaceDimension = 2,
70 unsigned int VSplineOrder = 3 >
72 public FunctionBase< ContinuousIndex< TCoordRep, VSpaceDimension >, Array< double > >
79 ContinuousIndex< TCoordRep, VSpaceDimension >,
94 typedef GetConstNumberOfWeightsHack<
95 itkGetStaticConstMacro( SplineOrder ),
96 itkGetStaticConstMacro( SpaceDimension ) > GetConstNumberOfWeightsHackType;
127 itkGetConstReferenceMacro( SupportSize,
SizeType );
130 itkGetConstMacro( NumberOfWeights,
unsigned long );
154 itkGetStaticConstMacro( SpaceDimension ),
164 virtual void PrintSelf( std::ostream & os, Indent indent )
const;
194 #ifndef ITK_MANUAL_INSTANTIATION
195 #include "itkBSplineInterpolationWeightFunctionBase.hxx"
BSplineSecondOrderDerivativeKernelFunction2< Self::SplineOrder > SecondOrderDerivativeKernelType
void ComputeStartIndex(const ContinuousIndexType &index, IndexType &startIndex) const
itkStaticConstMacro(SpaceDimension, unsigned int, VSpaceDimension)
virtual void Compute1DWeights(const ContinuousIndexType &index, const IndexType &startIndex, OneDWeightsType &weights1D) const =0
ContinuousIndex< TCoordRep, VSpaceDimension > ContinuousIndexType
KernelType::WeightArrayType WeightArrayType
itkStaticConstMacro(NumberOfWeights, unsigned long, GetConstNumberOfWeightsHackType::Value)
BSplineDerivativeKernelFunction< Self::SplineOrder > DerivativeKernelType
SmartPointer< Self > Pointer
FixedArray< double, itkGetStaticConstMacro(SplineOrder)+1 > WeightArrayType
DerivativeKernelType::Pointer m_DerivativeKernel
void InitializeSupport(void)
Index< VSpaceDimension > IndexType
Array< double > WeightsType
Size< VSpaceDimension > SizeType
Returns the weights over the support region used for B-spline interpolation/reconstruction.
Array2D< unsigned long > TableType
DerivativeKernelType::Pointer DerivativeKernelPointer
KernelType::Pointer m_Kernel
virtual WeightsType Evaluate(const ContinuousIndexType &index) const
~BSplineInterpolationWeightFunctionBase()
Derivative of a B-spline kernel used for density estimation and nonparametric regression.
BSplineInterpolationWeightFunctionBase()
BSplineInterpolationWeightFunctionBase(const Self &)
Matrix< double, itkGetStaticConstMacro(SpaceDimension), itkGetStaticConstMacro(SplineOrder)+1 > OneDWeightsType
unsigned long m_NumberOfWeights
KernelType::Pointer KernelPointer
itkStaticConstMacro(SplineOrder, unsigned int, VSplineOrder)
virtual void Evaluate(const ContinuousIndexType &cindex, const IndexType &startIndex, WeightsType &weights) const
void operator=(const Self &)
SmartPointer< const Self > ConstPointer
BSplineInterpolationWeightFunctionBase Self
SecondOrderDerivativeKernelType::Pointer SecondOrderDerivativeKernelPointer
virtual void PrintSelf(std::ostream &os, Indent indent) const
TableType m_OffsetToIndexTable
BSplineKernelFunction2< Self::SplineOrder > KernelType
B-spline kernel used for density estimation and nonparameteric regression.
void InitializeOffsetToIndexTable(void)
SecondOrderDerivativeKernelType::Pointer m_SecondOrderDerivativeKernel
FunctionBase< ContinuousIndex< TCoordRep, VSpaceDimension >, Array< double > > Superclass
Generated on OURCE_DATE_EPOCH for elastix by 1.8.18 |
|