28 #ifndef itkBSplineInterpolateImageFunction_h 29 #define itkBSplineInterpolateImageFunction_h 34 #include "vnl/vnl_matrix.h" 82 typename TCoordRep = double,
83 typename TCoefficientType =
double >
144 virtual OutputType
Evaluate(
const PointType & point)
const ITK_OVERRIDE
146 ContinuousIndexType index;
148 this->
GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
154 virtual OutputType
Evaluate(
const PointType & point,
157 ContinuousIndexType index;
159 this->
GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
165 index)
const ITK_OVERRIDE
185 ContinuousIndexType index;
187 this->
GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
196 ContinuousIndexType index;
198 this->
GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
204 const ContinuousIndexType & x)
const 224 const ContinuousIndexType & x,
231 ContinuousIndexType index;
233 this->
GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
247 ContinuousIndexType index;
249 this->
GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
258 const ContinuousIndexType & x,
283 const ContinuousIndexType & x,
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;
391 const ContinuousIndexType & x,
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
Image< CoefficientDataType, itkGetStaticConstMacro(ImageDimension) > CoefficientImageType
std::vector< CoefficientDataType > m_Scratch
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
ThreadIdType m_NumberOfThreads
TCoefficientType CoefficientDataType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
BSplineInterpolateImageFunction()
std::vector< IndexType > m_PointsToIndex
Superclass::ContinuousIndexType ContinuousIndexType
CoefficientFilter::Pointer CoefficientFilterPointer
void PrintSelf(std::ostream &os, Indent indent) const override
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
virtual OutputType EvaluateAtContinuousIndex(const ContinuousIndexType &index) const override
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.
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
virtual OutputType Evaluate(const PointType &point) const override
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
Templated n-dimensional image class.
vnl_matrix< double > * m_ThreadedWeightsDerivative