34 #ifndef __itkReducedDimensionBSplineInterpolateImageFunction_h
35 #define __itkReducedDimensionBSplineInterpolateImageFunction_h
39 #include "itkImageLinearIteratorWithIndex.h"
40 #include "itkInterpolateImageFunction.h"
41 #include "vnl/vnl_matrix.h"
44 #include "itkConceptChecking.h"
45 #include "itkCovariantVector.h"
86 class TCoefficientType =
double >
88 public InterpolateImageFunction<TImageType,TCoordRep>
93 typedef InterpolateImageFunction<TImageType,TCoordRep>
Superclass;
105 typedef typename Superclass::OutputType
OutputType;
111 itkStaticConstMacro(ImageDimension,
unsigned int,Superclass::ImageDimension);
123 typedef ImageLinearIteratorWithIndex<TImageType>
Iterator;
128 itkGetStaticConstMacro(ImageDimension)
150 itkGetStaticConstMacro(ImageDimension)
156 this->GetInputImage()->TransformPhysicalPointToContinuousIndex( point, index );
157 return ( this->EvaluateDerivativeAtContinuousIndex( index ) );
160 CovariantVectorType EvaluateDerivativeAtContinuousIndex(
161 const ContinuousIndexType & x )
const;
166 void SetSplineOrder(
unsigned int SplineOrder);
167 itkGetConstMacro(SplineOrder,
int);
171 virtual void SetInputImage(
const TImageType * inputData);
186 itkSetMacro( UseImageDirection,
bool );
187 itkGetConstMacro( UseImageDirection,
bool );
188 itkBooleanMacro( UseImageDirection );
194 void PrintSelf(std::ostream& os, Indent indent)
const;
205 void operator=(
const Self& );
209 const vnl_matrix<long> & EvaluateIndex,
210 vnl_matrix<double> & weights,
211 unsigned int splineOrder )
const;
215 const vnl_matrix<long> & EvaluateIndex,
216 vnl_matrix<double> & weights,
217 unsigned int splineOrder )
const;
221 void GeneratePointsToIndex( );
224 void DetermineRegionOfSupport( vnl_matrix<long> & evaluateIndex,
226 unsigned int splineOrder )
const;
230 void ApplyMirrorBoundaryConditions(vnl_matrix<long> & evaluateIndex,
231 unsigned int splineOrder)
const;
248 #ifndef ITK_MANUAL_INSTANTIATION
249 #include "itkReducedDimensionBSplineInterpolateImageFunction.txx"
Superclass::OutputType OutputType
Image< CoefficientDataType, > CoefficientImageType
TImageType::SizeType m_DataLength
std::vector< CoefficientDataType > m_Scratch
Superclass::PointType PointType
Superclass::InputImageType InputImageType
std::vector< IndexType > m_PointsToIndex
unsigned int m_SplineOrder
ReducedDimensionBSplineInterpolateImageFunction Self
CoefficientFilter::Pointer CoefficientFilterPointer
TCoefficientType CoefficientDataType
SmartPointer< Self > Pointer
ImageLinearIteratorWithIndex< TImageType > Iterator
Evaluates the B-Spline interpolation of an image. Spline order may be from 0 to 5.
CovariantVector< OutputType, > CovariantVectorType
unsigned long m_MaxNumberInterpolationPoints
Superclass::IndexType IndexType
Calculates the B-Spline coefficients of an image. Spline order may be per dimension from 0 to 5 per...
Superclass::ContinuousIndexType ContinuousIndexType
SmartPointer< const Self > ConstPointer
virtual ~ReducedDimensionBSplineInterpolateImageFunction()
SmartPointer< Self > Pointer
CoefficientFilterPointer m_CoefficientFilter
CoefficientImageType::ConstPointer m_Coefficients
InterpolateImageFunction< TImageType, TCoordRep > Superclass
MultiOrderBSplineDecompositionImageFilter< TImageType, CoefficientImageType > CoefficientFilter
CovariantVectorType EvaluateDerivative(const PointType &point) const