1 #ifndef __itkBSplineResampleImageFunctionWithLUT_h
2 #define __itkBSplineResampleImageFunctionWithLUT_h
4 #include "itkBSplineInterpolateImageFunctionWithLUT.h"
8 /** \class BSplineResampleImageFunctionWithLUT
9 * \brief Resample image intensity from a BSpline coefficient image using a LUT.
11 * This class resample the image intensity at a non-integer position
12 * from the input BSpline coefficient image using a LUT.
14 * Spline order may be from 0 to 5.
16 * In ITK, BSpline coefficient can be generated using a
17 * BSplineDecompositionImageFilter. Using this image function in
18 * conjunction with ResampleImageFunction allows the reconstruction
19 * of the original image at different resolution and size.
21 * \sa BSplineInterpolateImageFunctionWithLUT
22 * \sa BSplineDecompositionImageFilter
23 * \sa ResampleImageFilter
25 * \ingroup ImageFunctions
27 template <class TImageType, class TCoordRep = float>
28 class ITK_EXPORT BSplineResampleImageFunctionWithLUT :
29 public BSplineInterpolateImageFunctionWithLUT<
30 TImageType,TCoordRep,ITK_TYPENAME TImageType::PixelType >
33 /** Standard class typedefs. */
34 typedef BSplineResampleImageFunctionWithLUT Self;
35 typedef BSplineInterpolateImageFunctionWithLUT<
36 TImageType,TCoordRep, ITK_TYPENAME TImageType::PixelType > Superclass;
37 typedef SmartPointer<Self> Pointer;
38 typedef SmartPointer<const Self> ConstPointer;
40 /** Run-time type information (and related methods). */
41 itkTypeMacro(BSplineReconstructionImageFunction,
42 BSplineInterpolateImageFunctionWithLUT);
44 /** New macro for creation of through a Smart Pointer */
47 /** Set the input image representing the BSplineCoefficients */
48 virtual void SetInputImage(const TImageType * inputData)
50 // bypass my superclass
51 this->InterpolateImageFunction<TImageType,TCoordRep>::SetInputImage(inputData);
52 this->m_Coefficients = inputData;
53 if ( this->m_Coefficients.IsNotNull() )
55 this->m_DataLength = this->m_Coefficients->GetBufferedRegion().GetSize();
57 // JV specific for BLUT ( contains the call to UpdatePrecomputedWeights() )
58 this->UpdateWeightsProperties();
63 BSplineResampleImageFunctionWithLUT() {};
64 virtual ~BSplineResampleImageFunctionWithLUT() {};
65 void PrintSelf(std::ostream& os, Indent indent) const
67 this->Superclass::PrintSelf( os, indent );
71 BSplineResampleImageFunctionWithLUT(const Self&);//purposely not implemented