Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
#include <itkRecursiveBSplineTransformImplementation.h>
This helper class contains the actual implementation of the recursive B-spline transform.
Define the end case for SpaceDimension = 0.
Compared to the RecursiveBSplineTransformImplementation class, this class works as a vector operator, and is therefore also templated over the OutputDimension.
Note: More optimized code can be found in itkRecursiveBSplineImplementation.h
Definition at line 41 of file itkRecursiveBSplineTransformImplementation.h.
Public Types | |
typedef ScalarType ** | CoefficientPointerVectorType |
typedef double | InternalFloatType |
typedef ScalarType * | OutputPointType |
typedef itk::RecursiveBSplineInterpolationWeightFunction< ScalarType, OutputDimension, SplineOrder > | RecursiveBSplineWeightFunctionType |
typedef TScalar | ScalarType |
Public Member Functions | |
itkStaticConstMacro (BSplineNumberOfIndices, unsigned int, RecursiveBSplineWeightFunctionType::NumberOfIndices) | |
itkStaticConstMacro (HelperConstVariable, unsigned int,(SpaceDimension - 1) *(SplineOrder+1)) | |
Static Public Member Functions | |
static void | ComputeNonZeroJacobianIndices (unsigned long *&nzji, const unsigned long parametersPerDim, unsigned long currentIndex, const OffsetValueType *gridOffsetTable) |
static void | EvaluateJacobianWithImageGradientProduct (ScalarType *&imageJacobian, const InternalFloatType *movingImageGradient, const double *weights1D, double value) |
static void | GetJacobian (ScalarType *&jacobians, const double *weights1D, double value) |
static void | GetJacobianOfSpatialHessian (InternalFloatType *&jsh_out, const double *weights1D, const double *derivativeWeights1D, const double *hessianWeights1D, const double *directionCosines, InternalFloatType *jsh) |
static void | GetJacobianOfSpatialJacobian (InternalFloatType *&jsj_out, const double *weights1D, const double *derivativeWeights1D, const double *directionCosines, InternalFloatType *jsj) |
static void | GetSpatialHessian (InternalFloatType *sh, const CoefficientPointerVectorType mu, const OffsetValueType *gridOffsetTable, const double *weights1D, const double *derivativeWeights1D, const double *hessianWeights1D) |
static void | GetSpatialJacobian (InternalFloatType *sj, const CoefficientPointerVectorType mu, const OffsetValueType *gridOffsetTable, const double *weights1D, const double *derivativeWeights1D) |
static void | TransformPoint (OutputPointType opp, const CoefficientPointerVectorType mu, const OffsetValueType *gridOffsetTable, const double *weights1D) |
typedef ScalarType** itk::RecursiveBSplineTransformImplementation< OutputDimension, SpaceDimension, SplineOrder, TScalar >::CoefficientPointerVectorType |
Definition at line 62 of file itkRecursiveBSplineTransformImplementation.h.
typedef double itk::RecursiveBSplineTransformImplementation< OutputDimension, SpaceDimension, SplineOrder, TScalar >::InternalFloatType |
Definition at line 49 of file itkRecursiveBSplineTransformImplementation.h.
typedef ScalarType* itk::RecursiveBSplineTransformImplementation< OutputDimension, SpaceDimension, SplineOrder, TScalar >::OutputPointType |
Definition at line 61 of file itkRecursiveBSplineTransformImplementation.h.
typedef itk::RecursiveBSplineInterpolationWeightFunction< ScalarType, OutputDimension, SplineOrder > itk::RecursiveBSplineTransformImplementation< OutputDimension, SpaceDimension, SplineOrder, TScalar >::RecursiveBSplineWeightFunctionType |
Typedef to know the number of indices at compile time.
Definition at line 57 of file itkRecursiveBSplineTransformImplementation.h.
typedef TScalar itk::RecursiveBSplineTransformImplementation< OutputDimension, SpaceDimension, SplineOrder, TScalar >::ScalarType |
Typedef related to the coordinate representation type and the weights type. Usually double, but can be float as well. <Not tested very well for float>
Definition at line 48 of file itkRecursiveBSplineTransformImplementation.h.
|
inlinestatic |
ComputeNonZeroJacobianIndices recursive implementation.
Definition at line 132 of file itkRecursiveBSplineTransformImplementation.h.
|
inlinestatic |
EvaluateJacobianWithImageGradientProduct recursive implementation.
Definition at line 117 of file itkRecursiveBSplineTransformImplementation.h.
|
inlinestatic |
GetJacobian recursive implementation.
Definition at line 104 of file itkRecursiveBSplineTransformImplementation.h.
|
inlinestatic |
GetJacobianOfSpatialHessian recursive implementation. Multiplication with the direction cosines is performed in the end - case.
Definition at line 320 of file itkRecursiveBSplineTransformImplementation.h.
|
inlinestatic |
GetJacobianOfSpatialJacobian recursive implementation. Multiplication with the direction cosines is performed in the end-case.
Definition at line 284 of file itkRecursiveBSplineTransformImplementation.h.
|
inlinestatic |
GetSpatialHessian recursive implementation. As an (almost) free by-product this function delivers the displacement, i.e. the TransformPoint() function, as well as the SpatialJacobian.
Specifically, sh is the output argument. It should be allocated with a size OutputDimension * ( SpaceDimension + 1 ) * ( SpaceDimension + 2 ) / 2. sh should point to allocated memory, but this function initializes sh.
Upon return sh contains the spatial Hessian, spatial Jacobian and transformpoint. With Hk = [ transformPoint spatialJacobian' spatialJacobian spatialHessian ] . (Hk specifies all info of dimension (element) k (< OutputDimension) of the point and spatialJacobian is a vector of the derivative of this point with respect to the dimensions.) The i,j (both < SpaceDimension) element of Hk is stored in: i<=j : sh[ k + OutputDimension * (i + j*(j+1)/2 ) ] i>=j : sh[ k + OutputDimension * (j + i*(i+1)/2 ) ]
Note that we store only one of the symmetric halves of Hk.
Definition at line 220 of file itkRecursiveBSplineTransformImplementation.h.
|
inlinestatic |
GetSpatialJacobian recursive implementation. As an (almost) free by-product this function delivers the displacement, i.e. the TransformPoint() function.
Definition at line 154 of file itkRecursiveBSplineTransformImplementation.h.
itk::RecursiveBSplineTransformImplementation< OutputDimension, SpaceDimension, SplineOrder, TScalar >::itkStaticConstMacro | ( | BSplineNumberOfIndices | , |
unsigned int | , | ||
RecursiveBSplineWeightFunctionType::NumberOfIndices | |||
) |
itk::RecursiveBSplineTransformImplementation< OutputDimension, SpaceDimension, SplineOrder, TScalar >::itkStaticConstMacro | ( | HelperConstVariable | , |
unsigned int | , | ||
(SpaceDimension - 1) *(SplineOrder+1) | |||
) |
Helper constant variable.
|
inlinestatic |
TransformPoint recursive implementation.
Definition at line 65 of file itkRecursiveBSplineTransformImplementation.h.
Generated on 1667476801 for elastix by 1.9.4 |