36#ifndef itkMultiOrderBSplineDecompositionImageFilter_h
37#define itkMultiOrderBSplineDecompositionImageFilter_h
41#include "itkImageLinearIteratorWithIndex.h"
42#include <vnl/vnl_matrix.h>
44#include "itkImageToImageFilter.h"
80template <
typename TInputImage,
typename TOutputImage>
82 :
public ImageToImageFilter<TInputImage, TOutputImage>
89 using Superclass = ImageToImageFilter<TInputImage, TOutputImage>;
100 using typename Superclass::InputImageType;
101 using typename Superclass::InputImagePointer;
102 using typename Superclass::InputImageConstPointer;
103 using typename Superclass::OutputImagePointer;
105 using CoeffType =
typename itk::NumericTraits<typename TOutputImage::PixelType>::RealType;
129#ifdef ITK_USE_CONCEPT_CHECKING
131 itkConceptMacro(DimensionCheck, (Concept::SameDimension<ImageDimension, OutputImageDimension>));
132 itkConceptMacro(InputConvertibleToOutputCheck,
133 (Concept::Convertible<typename TInputImage::PixelType, typename TOutputImage::PixelType>));
134 itkConceptMacro(DoubleConvertibleToOutputCheck, (Concept::Convertible<double, typename TOutputImage::PixelType>));
142 PrintSelf(std::ostream & os, Indent indent)
const override;
203#ifndef ITK_MANUAL_INSTANTIATION
204# include "itkMultiOrderBSplineDecompositionImageFilter.hxx"
void GenerateInputRequestedRegion() override
itkStaticConstMacro(OutputImageDimension, unsigned int, TOutputImage::ImageDimension)
typename itk::NumericTraits< typename TOutputImage::PixelType >::RealType CoeffType
ImageToImageFilter< TInputImage, TOutputImage > Superclass
unsigned int m_IteratorDirection
void SetSplineOrder(unsigned int order)
virtual void SetPoles(unsigned int dimension)
virtual void SetInitialAntiCausalCoefficient(double z)
MultiOrderBSplineDecompositionImageFilter()
SmartPointer< const Self > ConstPointer
void CopyScratchToCoefficients(OutputLinearIterator &)
ImageLinearIteratorWithIndex< TOutputImage > OutputLinearIterator
~MultiOrderBSplineDecompositionImageFilter() override=default
virtual void SetInitialCausalCoefficient(double z)
void SetSplineOrder(unsigned int dimension, unsigned int order)
void CopyCoefficientsToScratch(OutputLinearIterator &)
virtual bool DataToCoefficients1D()
unsigned int m_SplineOrder[ImageDimension]
std::vector< CoeffType > m_Scratch
TImageType::SizeType m_DataLength
void PrintSelf(std::ostream &os, Indent indent) const override
void GetSplineOrder(unsigned int dimension)
itkOverrideGetNameOfClassMacro(MultiOrderBSplineDecompositionImageFilter)
void EnlargeOutputRequestedRegion(DataObject *output) override
SmartPointer< Self > Pointer
MultiOrderBSplineDecompositionImageFilter Self
void DataToCoefficientsND()
itkStaticConstMacro(ImageDimension, unsigned int, TInputImage::ImageDimension)
void GenerateData() override
ITK_DISALLOW_COPY_AND_MOVE(MultiOrderBSplineDecompositionImageFilter)