33 #ifndef __itkMultiOrderBSplineDecompositionImageFilter_h
34 #define __itkMultiOrderBSplineDecompositionImageFilter_h
38 #include "itkImageLinearIteratorWithIndex.h"
39 #include "vnl/vnl_matrix.h"
41 #include "itkImageToImageFilter.h"
77 template<
class TInputImage,
class TOutputImage >
79 public ImageToImageFilter< TInputImage, TOutputImage >
85 typedef ImageToImageFilter< TInputImage, TOutputImage >
Superclass;
101 typedef typename itk::NumericTraits< typename TOutputImage::PixelType >::RealType
CoeffType;
104 itkStaticConstMacro( ImageDimension,
unsigned int, TInputImage::ImageDimension );
105 itkStaticConstMacro( OutputImageDimension,
unsigned int,
106 TOutputImage::ImageDimension );
113 void SetSplineOrder(
unsigned int order );
115 void SetSplineOrder(
unsigned int dimension,
unsigned int order );
119 return m_SplineOrder[ dimension ];
125 #ifdef ITK_USE_CONCEPT_CHECKING
127 itkConceptMacro( DimensionCheck,
128 ( Concept::SameDimension< ImageDimension, OutputImageDimension > ) );
129 itkConceptMacro( InputConvertibleToOutputCheck,
130 ( Concept::Convertible<
typename TInputImage::PixelType,
131 typename TOutputImage::PixelType > ) );
132 itkConceptMacro( DoubleConvertibleToOutputCheck,
133 ( Concept::Convertible< double, typename TOutputImage::PixelType > ) );
141 void PrintSelf( std::ostream & os, Indent indent )
const;
146 void GenerateInputRequestedRegion();
149 void EnlargeOutputRequestedRegion( DataObject * output );
155 unsigned int m_SplineOrder[ ImageDimension ];
156 double m_SplinePoles[ 3 ];
164 void operator=(
const Self & );
167 virtual void SetPoles(
unsigned int dimension );
170 virtual bool DataToCoefficients1D();
174 void DataToCoefficientsND();
177 virtual void SetInitialCausalCoefficient(
double z );
180 virtual void SetInitialAntiCausalCoefficient(
double z );
183 void CopyImageToImage();
195 #ifndef ITK_MANUAL_INSTANTIATION
196 #include "itkMultiOrderBSplineDecompositionImageFilter.hxx"
TInputImage::SizeType m_DataLength
itk::NumericTraits< typename TOutputImage::PixelType >::RealType CoeffType
Superclass::InputImageConstPointer InputImageConstPointer
SmartPointer< Self > Pointer
virtual ~MultiOrderBSplineDecompositionImageFilter()
Superclass::InputImagePointer InputImagePointer
ImageLinearIteratorWithIndex< TOutputImage > OutputLinearIterator
ImageToImageFilter< TInputImage, TOutputImage > Superclass
Superclass::OutputImagePointer OutputImagePointer
MultiOrderBSplineDecompositionImageFilter Self
Calculates the B-Spline coefficients of an image. Spline order may be per dimension from 0 to 5 per...
void GetSplineOrder(unsigned int dimension)
unsigned int m_IteratorDirection
std::vector< CoeffType > m_Scratch
SmartPointer< const Self > ConstPointer
Superclass::InputImageType InputImageType