38#ifndef __itkReducedDimensionBSplineInterpolateImageFunction_h
39#define __itkReducedDimensionBSplineInterpolateImageFunction_h
43#include "itkImageLinearIteratorWithIndex.h"
44#include "itkInterpolateImageFunction.h"
45#include "vnl/vnl_matrix.h"
48#include "itkConceptChecking.h"
49#include "itkCovariantVector.h"
90class TCoefficientType =
double >
92 public InterpolateImageFunction< TImageType, TCoordRep >
98 typedef InterpolateImageFunction< TImageType, TCoordRep >
Superclass;
129 typedef ImageLinearIteratorWithIndex< TImageType >
Iterator;
134 itkGetStaticConstMacro( ImageDimension )
156 itkGetStaticConstMacro( ImageDimension )
162 this->GetInputImage()->TransformPhysicalPointToContinuousIndex( point, index );
163 return ( this->EvaluateDerivativeAtContinuousIndex( index ) );
174 itkGetConstMacro( SplineOrder,
int );
191 itkSetMacro( UseImageDirection,
bool );
192 itkGetConstMacro( UseImageDirection,
bool );
193 itkBooleanMacro( UseImageDirection );
199 void PrintSelf( std::ostream & os, Indent indent )
const override;
215 return SizeType::Filled(m_SplineOrder + 1);
220 const vnl_matrix< long > & EvaluateIndex,
222 unsigned int splineOrder )
const;
226 const vnl_matrix< long > & EvaluateIndex,
228 unsigned int splineOrder )
const;
237 unsigned int splineOrder )
const;
242 unsigned int splineOrder )
const;
258#ifndef ITK_MANUAL_INSTANTIATION
259#include "itkReducedDimensionBSplineInterpolateImageFunction.hxx"
Calculates the B-Spline coefficients of an image. Spline order may be per dimension from 0 to 5 per.
SmartPointer< Self > Pointer
Evaluates the B-Spline interpolation of an image. Spline order may be from 0 to 5.
OutputType EvaluateAtContinuousIndex(const ContinuousIndexType &index) const override
CovariantVectorType EvaluateDerivative(const PointType &point) const
~ReducedDimensionBSplineInterpolateImageFunction() override
ImageLinearIteratorWithIndex< TImageType > Iterator
typename TImageType::SizeType SizeType
Superclass::ContinuousIndexType ContinuousIndexType
SizeType GetRadius() const override
TImageType::SizeType m_DataLength
Image< CoefficientDataType, itkGetStaticConstMacro(ImageDimension) > CoefficientImageType
unsigned long m_MaxNumberInterpolationPoints
InterpolateImageFunction< TImageType, TCoordRep > Superclass
CovariantVector< OutputType, itkGetStaticConstMacro(ImageDimension) > CovariantVectorType
Superclass::InputImageType InputImageType
SmartPointer< const Self > ConstPointer
void SetInputImage(const TImageType *inputData) override
SmartPointer< Self > Pointer
ReducedDimensionBSplineInterpolateImageFunction Self
void operator=(const Self &)
void GeneratePointsToIndex()
Superclass::PointType PointType
MultiOrderBSplineDecompositionImageFilter< TImageType, CoefficientImageType > CoefficientFilter
void SetDerivativeWeights(const ContinuousIndexType &x, const vnl_matrix< long > &EvaluateIndex, vnl_matrix< double > &weights, unsigned int splineOrder) const
void DetermineRegionOfSupport(vnl_matrix< long > &evaluateIndex, const ContinuousIndexType &x, unsigned int splineOrder) const
void ApplyMirrorBoundaryConditions(vnl_matrix< long > &evaluateIndex, unsigned int splineOrder) const
ReducedDimensionBSplineInterpolateImageFunction(const Self &)
itkStaticConstMacro(ImageDimension, unsigned int, Superclass::ImageDimension)
CovariantVectorType EvaluateDerivativeAtContinuousIndex(const ContinuousIndexType &x) const
void SetInterpolationWeights(const ContinuousIndexType &x, const vnl_matrix< long > &EvaluateIndex, vnl_matrix< double > &weights, unsigned int splineOrder) const
unsigned int m_SplineOrder
CoefficientFilter::Pointer CoefficientFilterPointer
Superclass::OutputType OutputType
ReducedDimensionBSplineInterpolateImageFunction()
TCoefficientType CoefficientDataType
Superclass::IndexType IndexType
std::vector< CoefficientDataType > m_Scratch
void SetSplineOrder(unsigned int SplineOrder)
std::vector< IndexType > m_PointsToIndex
void PrintSelf(std::ostream &os, Indent indent) const override
CoefficientImageType::ConstPointer m_Coefficients
CoefficientFilterPointer m_CoefficientFilter