28 #ifndef itkBSplineInterpolateImageFunction_h
29 #define itkBSplineInterpolateImageFunction_h
34 #include "vnl/vnl_matrix.h"
82 typename TCoordRep = double,
83 typename TCoefficientType =
double >
148 this->
GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
159 this->
GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
165 index)
const ITK_OVERRIDE
187 this->
GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
198 this->
GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
233 this->
GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
249 this->
GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
292 itkGetConstMacro(SplineOrder,
int);
299 virtual void SetInputImage(
const TImageType *inputData) ITK_OVERRIDE;
311 itkSetMacro(UseImageDirection,
bool);
312 itkGetConstMacro(UseImageDirection,
bool);
313 itkBooleanMacro(UseImageDirection);
337 vnl_matrix< long > & evaluateIndex,
338 vnl_matrix< double > & weights)
const;
343 vnl_matrix< long > & evaluateIndex,
344 vnl_matrix< double > & weights,
345 vnl_matrix< double > & weightsDerivative
349 vnl_matrix< long > & evaluateIndex,
350 vnl_matrix< double > & weights,
351 vnl_matrix< double > & weightsDerivative
371 void operator=(const
Self &) ITK_DELETE_FUNCTION;
375 const vnl_matrix<
long > & EvaluateIndex,
376 vnl_matrix<
double > & weights,
377 unsigned int splineOrder) const;
381 const vnl_matrix<
long > & EvaluateIndex,
382 vnl_matrix<
double > & weights,
383 unsigned int splineOrder) const;
392 unsigned int splineOrder) const;
397 unsigned int splineOrder) const;
424 #ifndef ITK_MANUAL_INSTANTIATION
425 #include "itkBSplineInterpolateImageFunction.hxx"
Superclass::PointType PointType
vnl_matrix< long > * m_ThreadedEvaluateIndex
virtual OutputType EvaluateAtContinuousIndex(const ContinuousIndexType &index) const override
Image< CoefficientDataType, itkGetStaticConstMacro(ImageDimension) > CoefficientImageType
std::vector< CoefficientDataType > m_Scratch
Light weight base class for most itk classes.
BSplineDecompositionImageFilter< TImageType, CoefficientImageType > CoefficientFilter
unsigned long m_MaxNumberInterpolationPoints
virtual void SetInputImage(const TImageType *inputData) override
Superclass::InputImageType InputImageType
void DetermineRegionOfSupport(vnl_matrix< long > &evaluateIndex, const ContinuousIndexType &x, unsigned int splineOrder) const
CoefficientFilterPointer m_CoefficientFilter
BSplineInterpolateImageFunction Self
CovariantVectorType EvaluateDerivative(const PointType &point) const
vnl_matrix< double > * m_ThreadedWeights
void PrintSelf(std::ostream &os, Indent indent) const override
ThreadIdType m_NumberOfThreads
TCoefficientType CoefficientDataType
BSplineInterpolateImageFunction()
std::vector< IndexType > m_PointsToIndex
Superclass::ContinuousIndexType ContinuousIndexType
CoefficientFilter::Pointer CoefficientFilterPointer
Superclass::IndexType IndexType
Superclass::OutputType OutputType
CovariantVectorType EvaluateDerivative(const PointType &point, ThreadIdType threadId) const
const InputImageType * GetInputImage() const
void SetInterpolationWeights(const ContinuousIndexType &x, const vnl_matrix< long > &EvaluateIndex, vnl_matrix< double > &weights, unsigned int splineOrder) const
static const unsigned int ImageDimension
ImageLinearIteratorWithIndex< TImageType > Iterator
void SetNumberOfThreads(ThreadIdType numThreads)
Superclass::PointType PointType
void EvaluateValueAndDerivativeAtContinuousIndex(const ContinuousIndexType &x, OutputType &value, CovariantVectorType &deriv) const
virtual void EvaluateValueAndDerivativeAtContinuousIndexInternal(const ContinuousIndexType &x, OutputType &value, CovariantVectorType &derivativeValue, vnl_matrix< long > &evaluateIndex, vnl_matrix< double > &weights, vnl_matrix< double > &weightsDerivative) const
static const unsigned int ImageDimension
void SetDerivativeWeights(const ContinuousIndexType &x, const vnl_matrix< long > &EvaluateIndex, vnl_matrix< double > &weights, unsigned int splineOrder) const
virtual OutputType Evaluate(const PointType &point, ThreadIdType threadId) const
Superclass::InputImageType InputImageType
SmartPointer< const Self > ConstPointer
unsigned int ThreadIdType
Superclass::ContinuousIndexType ContinuousIndexType
Superclass::IndexType IndexType
Base class for all image interpolaters.
Superclass::OutputType OutputType
void EvaluateValueAndDerivative(const PointType &point, OutputType &value, CovariantVectorType &deriv, ThreadIdType threadId) const
Calculates the B-Spline coefficients of an image. Spline order may be from 0 to 5.
TImageType::SizeType m_DataLength
InterpolateImageFunction< TImageType, TCoordRep > Superclass
void ApplyMirrorBoundaryConditions(vnl_matrix< long > &evaluateIndex, unsigned int splineOrder) const
void SetSplineOrder(unsigned int SplineOrder)
virtual OutputType EvaluateAtContinuousIndexInternal(const ContinuousIndexType &index, vnl_matrix< long > &evaluateIndex, vnl_matrix< double > &weights) const
~BSplineInterpolateImageFunction()
void GeneratePointsToIndex()
void EvaluateValueAndDerivative(const PointType &point, OutputType &value, CovariantVectorType &deriv) const
Control indentation during Print() invocation.
virtual OutputType Evaluate(const PointType &point) const override
Evaluates the B-Spline interpolation of an image. Spline order may be from 0 to 5.
CovariantVectorType EvaluateDerivativeAtContinuousIndex(const ContinuousIndexType &x) const
CoefficientImageType::ConstPointer m_Coefficients
SmartPointer< Self > Pointer
A templated class holding a n-Dimensional covariant vector.
virtual CovariantVectorType EvaluateDerivativeAtContinuousIndexInternal(const ContinuousIndexType &x, vnl_matrix< long > &evaluateIndex, vnl_matrix< double > &weights, vnl_matrix< double > &weightsDerivative) const
unsigned int m_SplineOrder
CovariantVector< OutputType, itkGetStaticConstMacro(ImageDimension) > CovariantVectorType
NumericTraits< TImageType::PixelType >::RealType OutputType
Templated n-dimensional image class.
vnl_matrix< double > * m_ThreadedWeightsDerivative