37 #ifndef __itkMultiOrderBSplineDecompositionImageFilter_h 38 #define __itkMultiOrderBSplineDecompositionImageFilter_h 42 #include "itkImageLinearIteratorWithIndex.h" 43 #include "vnl/vnl_matrix.h" 45 #include "itkImageToImageFilter.h" 81 template<
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;
108 itkStaticConstMacro( ImageDimension,
unsigned int, TInputImage::ImageDimension );
109 itkStaticConstMacro( OutputImageDimension,
unsigned int,
110 TOutputImage::ImageDimension );
117 void SetSplineOrder(
unsigned int order );
119 void SetSplineOrder(
unsigned int dimension,
unsigned int order );
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;
150 void GenerateInputRequestedRegion();
153 void EnlargeOutputRequestedRegion( DataObject * output );
159 unsigned int m_SplineOrder[ ImageDimension ];
160 double m_SplinePoles[ 3 ];
168 void operator=(
const Self & );
171 virtual void SetPoles(
unsigned int dimension );
174 virtual bool DataToCoefficients1D();
178 void DataToCoefficientsND();
181 virtual void SetInitialCausalCoefficient(
double z );
184 virtual void SetInitialAntiCausalCoefficient(
double z );
187 void CopyImageToImage();
190 void CopyCoefficientsToScratch( OutputLinearIterator & );
193 void CopyScratchToCoefficients( OutputLinearIterator & );
199 #ifndef ITK_MANUAL_INSTANTIATION 200 #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