34 #ifndef __itkMultiOrderBSplineDecompositionImageFilter_h
35 #define __itkMultiOrderBSplineDecompositionImageFilter_h
39 #include "itkImageLinearIteratorWithIndex.h"
40 #include "vnl/vnl_matrix.h"
42 #include "itkImageToImageFilter.h"
78 template <
class TInputImage,
class TOutputImage>
80 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 );
114 void SetSplineOrder(
unsigned int dimension,
unsigned int order );
117 return m_SplineOrder[ dimension ];
121 #ifdef ITK_USE_CONCEPT_CHECKING
123 itkConceptMacro(DimensionCheck,
124 (Concept::SameDimension<ImageDimension, OutputImageDimension>));
125 itkConceptMacro(InputConvertibleToOutputCheck,
126 (Concept::Convertible<
typename TInputImage::PixelType,
127 typename TOutputImage::PixelType>));
128 itkConceptMacro(DoubleConvertibleToOutputCheck,
129 (Concept::Convertible<double, typename TOutputImage::PixelType>));
136 void PrintSelf(std::ostream& os, Indent indent)
const;
138 void GenerateData( );
141 void GenerateInputRequestedRegion();
144 void EnlargeOutputRequestedRegion( DataObject *output );
150 unsigned int m_SplineOrder[ImageDimension];
151 double m_SplinePoles[3];
159 void operator=(
const Self& );
162 virtual void SetPoles(
unsigned int dimension );
165 virtual bool DataToCoefficients1D();
169 void DataToCoefficientsND();
172 virtual void SetInitialCausalCoefficient(
double z);
175 virtual void SetInitialAntiCausalCoefficient(
double z);
178 void CopyImageToImage();
191 #ifndef ITK_MANUAL_INSTANTIATION
192 #include "itkMultiOrderBSplineDecompositionImageFilter.txx"
std::vector< CoeffType > m_Scratch
TInputImage::SizeType m_DataLength
ImageToImageFilter< TInputImage, TOutputImage > Superclass
Superclass::InputImageConstPointer InputImageConstPointer
SmartPointer< const Self > ConstPointer
virtual ~MultiOrderBSplineDecompositionImageFilter()
itk::NumericTraits< typename TOutputImage::PixelType >::RealType CoeffType
Superclass::InputImagePointer InputImagePointer
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
ImageLinearIteratorWithIndex< TOutputImage > OutputLinearIterator
SmartPointer< Self > Pointer
Superclass::InputImageType InputImageType