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 >
94 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 ) );
161 CovariantVectorType EvaluateDerivativeAtContinuousIndex(
162 const ContinuousIndexType & x )
const;
166 void SetSplineOrder(
unsigned int SplineOrder );
168 itkGetConstMacro( SplineOrder,
int );
171 virtual void SetInputImage(
const TImageType * inputData );
185 itkSetMacro( UseImageDirection,
bool );
186 itkGetConstMacro( UseImageDirection,
bool );
187 itkBooleanMacro( UseImageDirection );
193 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;
247 #ifndef ITK_MANUAL_INSTANTIATION
248 #include "itkReducedDimensionBSplineInterpolateImageFunction.hxx"
Superclass::OutputType OutputType
SmartPointer< const Self > ConstPointer
MultiOrderBSplineDecompositionImageFilter< TImageType, CoefficientImageType > CoefficientFilter
TImageType::SizeType m_DataLength
Superclass::PointType PointType
Superclass::InputImageType InputImageType
SmartPointer< Self > Pointer
SmartPointer< Self > Pointer
unsigned int m_SplineOrder
ReducedDimensionBSplineInterpolateImageFunction Self
CoefficientFilter::Pointer CoefficientFilterPointer
TCoefficientType CoefficientDataType
Evaluates the B-Spline interpolation of an image. Spline order may be from 0 to 5.
InterpolateImageFunction< TImageType, TCoordRep > Superclass
ImageLinearIteratorWithIndex< TImageType > Iterator
std::vector< CoefficientDataType > m_Scratch
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...
CovariantVector< OutputType, itkGetStaticConstMacro(ImageDimension) > CovariantVectorType
Superclass::ContinuousIndexType ContinuousIndexType
std::vector< IndexType > m_PointsToIndex
Image< CoefficientDataType, itkGetStaticConstMacro(ImageDimension) > CoefficientImageType
virtual ~ReducedDimensionBSplineInterpolateImageFunction()
CoefficientFilterPointer m_CoefficientFilter
CoefficientImageType::ConstPointer m_Coefficients
CovariantVectorType EvaluateDerivative(const PointType &point) const