28 #ifndef itkBSplineDecompositionImageFilter_h
29 #define itkBSplineDecompositionImageFilter_h
34 #include "vnl/vnl_matrix.h"
72 template<
typename TInputImage,
typename TOutputImage >
97 using CoeffType =
typename itk::NumericTraits< typename TOutputImage::PixelType >::RealType;
100 static constexpr
unsigned int ImageDimension = TInputImage::ImageDimension;
101 static constexpr
unsigned int OutputImageDimension = TOutputImage::ImageDimension;
110 void SetSplineOrder(
unsigned int SplineOrder);
112 itkGetConstMacro(SplineOrder,
int);
118 itkGetConstMacro( NumberOfPoles,
int );
121 #ifdef ITK_USE_CONCEPT_CHECKING
127 typename TOutputImage::PixelType > ) );
136 void PrintSelf(std::ostream & os,
Indent indent)
const override;
138 void GenerateData()
override;
141 void GenerateInputRequestedRegion()
override;
144 void EnlargeOutputRequestedRegion(
DataObject *output)
override;
150 virtual void SetPoles();
153 virtual bool DataToCoefficients1D();
157 void DataToCoefficientsND();
160 virtual void SetInitialCausalCoefficient(
double z);
164 virtual void SetInitialAntiCausalCoefficient(
double z);
168 void CopyImageToImage();
187 unsigned int m_SplineOrder{ 0 };
194 double m_Tolerance{ 1
e-10 };
197 unsigned int m_IteratorDirection{ 0 };
201 #ifndef ITK_MANUAL_INSTANTIATION
202 #include "itkBSplineDecompositionImageFilter.hxx"
typename OutputImageType::Pointer OutputImagePointer
A multi-dimensional image iterator that visits image pixels within a region in a "scan-line" order...
TInputImage::SizeType m_DataLength
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
std::vector< CoeffType > CoefficientsVectorType
Base class for all process objects that output image data.
TInputImage InputImageType
typename InputImageType::Pointer InputImagePointer
ImageBaseType::SizeType SizeType
CoefficientsVectorType m_Scratch
Calculates the B-Spline coefficients of an image. Spline order may be from 0 to 5.
static constexpr double e
The base of the natural logarithm or Euler's number
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
typename itk::NumericTraits< typename TOutputImage::PixelType >::RealType CoeffType
std::vector< double > SplinePolesVectorType
#define itkConceptMacro(name, concept)
typename InputImageType::ConstPointer InputImageConstPointer
Base class for all data objects in ITK.
SplinePolesVectorType m_SplinePoles