37#ifndef __itkMultiOrderBSplineDecompositionImageFilter_h
38#define __itkMultiOrderBSplineDecompositionImageFilter_h
42#include "itkImageLinearIteratorWithIndex.h"
43#include "vnl/vnl_matrix.h"
45#include "itkImageToImageFilter.h"
81template<
class TInputImage,
class TOutputImage >
83 public ImageToImageFilter< TInputImage, TOutputImage >
89 typedef ImageToImageFilter< TInputImage, TOutputImage >
Superclass;
105 typedef typename itk::NumericTraits< typename TOutputImage::PixelType >::RealType
CoeffType;
110 TOutputImage::ImageDimension );
123 return m_SplineOrder[ dimension ];
129#ifdef ITK_USE_CONCEPT_CHECKING
131 itkConceptMacro( DimensionCheck,
132 ( Concept::SameDimension< ImageDimension, OutputImageDimension > ) );
133 itkConceptMacro( InputConvertibleToOutputCheck,
134 ( Concept::Convertible<
typename TInputImage::PixelType,
135 typename TOutputImage::PixelType > ) );
136 itkConceptMacro( DoubleConvertibleToOutputCheck,
137 ( Concept::Convertible< double, typename TOutputImage::PixelType > ) );
145 void PrintSelf( std::ostream & os, Indent indent )
const override;
159 unsigned int m_SplineOrder[ ImageDimension ];
160 double m_SplinePoles[ 3 ];
199#ifndef ITK_MANUAL_INSTANTIATION
200#include "itkMultiOrderBSplineDecompositionImageFilter.hxx"
Calculates the B-Spline coefficients of an image. Spline order may be per dimension from 0 to 5 per.
MultiOrderBSplineDecompositionImageFilter(const Self &)
void GenerateInputRequestedRegion() override
itkStaticConstMacro(OutputImageDimension, unsigned int, TOutputImage::ImageDimension)
unsigned int m_IteratorDirection
void SetSplineOrder(unsigned int order)
ImageToImageFilter< TInputImage, TOutputImage > Superclass
virtual void SetPoles(unsigned int dimension)
virtual void SetInitialAntiCausalCoefficient(double z)
MultiOrderBSplineDecompositionImageFilter()
void CopyScratchToCoefficients(OutputLinearIterator &)
~MultiOrderBSplineDecompositionImageFilter() override
ImageLinearIteratorWithIndex< TOutputImage > OutputLinearIterator
virtual void SetInitialCausalCoefficient(double z)
Superclass::OutputImagePointer OutputImagePointer
void SetSplineOrder(unsigned int dimension, unsigned int order)
Superclass::InputImagePointer InputImagePointer
SmartPointer< const Self > ConstPointer
Superclass::InputImageType InputImageType
void CopyCoefficientsToScratch(OutputLinearIterator &)
virtual bool DataToCoefficients1D()
std::vector< CoeffType > m_Scratch
TInputImage::SizeType m_DataLength
itk::NumericTraits< typenameTOutputImage::PixelType >::RealType CoeffType
MultiOrderBSplineDecompositionImageFilter Self
void PrintSelf(std::ostream &os, Indent indent) const override
void GetSplineOrder(unsigned int dimension)
SmartPointer< Self > Pointer
void operator=(const Self &)
void EnlargeOutputRequestedRegion(DataObject *output) override
Superclass::InputImageConstPointer InputImageConstPointer
void DataToCoefficientsND()
itkStaticConstMacro(ImageDimension, unsigned int, TInputImage::ImageDimension)
void GenerateData() override