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" 90 class TCoefficientType =
double >
92 public InterpolateImageFunction< TImageType, TCoordRep >
98 typedef InterpolateImageFunction< TImageType, TCoordRep >
Superclass;
109 typedef typename Superclass::OutputType
OutputType;
115 itkStaticConstMacro( ImageDimension,
unsigned int, Superclass::ImageDimension );
127 typedef ImageLinearIteratorWithIndex< TImageType >
Iterator;
131 typedef Image< CoefficientDataType,
132 itkGetStaticConstMacro( ImageDimension )
149 virtual OutputType EvaluateAtContinuousIndex(
150 const ContinuousIndexType & index )
const;
153 typedef CovariantVector< OutputType,
154 itkGetStaticConstMacro( ImageDimension )
159 ContinuousIndexType index;
160 this->GetInputImage()->TransformPhysicalPointToContinuousIndex( point, index );
161 return ( this->EvaluateDerivativeAtContinuousIndex( index ) );
166 const ContinuousIndexType & x )
const;
170 void SetSplineOrder(
unsigned int SplineOrder );
172 itkGetConstMacro( SplineOrder,
int );
175 virtual void SetInputImage(
const TImageType * inputData );
189 itkSetMacro( UseImageDirection,
bool );
190 itkGetConstMacro( UseImageDirection,
bool );
191 itkBooleanMacro( UseImageDirection );
197 void PrintSelf( std::ostream & os, Indent indent )
const;
209 void operator=(
const Self & );
212 void SetInterpolationWeights(
const ContinuousIndexType & x,
213 const vnl_matrix< long > & EvaluateIndex,
214 vnl_matrix< double > & weights,
215 unsigned int splineOrder )
const;
218 void SetDerivativeWeights(
const ContinuousIndexType & x,
219 const vnl_matrix< long > & EvaluateIndex,
220 vnl_matrix< double > & weights,
221 unsigned int splineOrder )
const;
225 void GeneratePointsToIndex();
228 void DetermineRegionOfSupport( vnl_matrix< long > & evaluateIndex,
229 const ContinuousIndexType & x,
230 unsigned int splineOrder )
const;
234 void ApplyMirrorBoundaryConditions( vnl_matrix< long > & evaluateIndex,
235 unsigned int splineOrder )
const;
251 #ifndef ITK_MANUAL_INSTANTIATION 252 #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
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