2 #ifndef clitkConvertBLUTCoeffsToVFFilter_h
3 #define clitkConvertBLUTCoeffsToVFFilter_h
6 #include "clitkCommon.h"
7 #include "clitkImageCommon.h"
8 #include "clitkBSplineDeformableTransform.h"
9 #include "itkBSplineDeformableTransform.h"
10 #if ITK_VERSION_MAJOR >= 4
11 #include "itkTransformToDisplacementFieldSource.h"
13 #include "itkTransformToDeformationFieldSource.h"
18 template <class TDVFType>
19 class ConvertBLUTCoeffsToVFFilter :
20 public itk::ImageSource<TDVFType>
24 /** Standard class typedefs. */
25 typedef ConvertBLUTCoeffsToVFFilter Self;
26 typedef itk::ImageSource<TDVFType> Superclass;
27 typedef itk::SmartPointer<Self> Pointer;
28 typedef itk::SmartPointer<const Self> ConstPointer;
31 typedef itk::ImageIOBase LikeImageType;
32 typedef typename LikeImageType::Pointer LikeImagePointer;
34 typedef TDVFType OutputImageType;
35 typedef typename OutputImageType::Pointer OutputImagePointer;
36 typedef typename OutputImageType::ConstPointer OutputImageConstPointer;
37 typedef typename OutputImageType::RegionType OutputImageRegionType;
38 typedef typename OutputImageType::SizeType OutputImageSizeType;
39 typedef typename OutputImageType::PointType OutputImagePointType;
40 typedef typename OutputImageType::SpacingType OutputImageSpacingType;
42 typedef clitk::BSplineDeformableTransform<double, TDVFType::ImageDimension, TDVFType::ImageDimension> BLUTTransformType;
43 typedef typename BLUTTransformType::CoefficientImageType BLUTCoefficientImageType;
44 typedef itk::BSplineDeformableTransform<double, TDVFType::ImageDimension, TDVFType::ImageDimension> ITKTransformType;
46 typedef itk::Transform< double, TDVFType::ImageDimension, TDVFType::ImageDimension> GenericTransformType;
48 #if ITK_VERSION_MAJOR >= 4
49 typedef itk::TransformToDisplacementFieldSource<OutputImageType, double> ConvertorType;
51 typedef itk::TransformToDeformationFieldSource<OutputImageType, double> ConvertorType;
56 itkSetMacro(Verbose, bool);
57 itkSetMacro(InputFileName, std::string);
58 itkSetMacro(LikeFileName, std::string);
59 itkSetMacro(OutputOrigin, OutputImagePointType);
60 itkSetMacro(OutputSpacing, OutputImageSpacingType);
61 itkSetMacro(OutputSize, OutputImageSizeType);
62 itkSetMacro(TransformType, unsigned int);
63 itkSetMacro(MaskFileName, std::string);
64 itkSetMacro(BLUTSplineOrders, typename BLUTCoefficientImageType::SizeType);
66 /** DeformationFieldImageFilter produces a vector image. */
67 virtual void GenerateOutputInformation( void );
71 ConvertBLUTCoeffsToVFFilter();
72 ~ConvertBLUTCoeffsToVFFilter() {};
74 virtual void GenerateData();
77 unsigned int m_TransformType;
78 typename BLUTTransformType::Pointer m_BLUTTransform;
79 typename ITKTransformType::Pointer m_ITKTransform;
80 typename GenericTransformType::Pointer m_GenericTransform;
82 std::string m_InputFileName, m_LikeFileName, m_MaskFileName;
83 OutputImageSizeType m_OutputSize;
84 OutputImageSpacingType m_OutputSpacing;
85 OutputImagePointType m_OutputOrigin;
86 typename BLUTCoefficientImageType::SizeType m_BLUTSplineOrders;
87 typename ConvertorType::Pointer m_Filter;
91 #include "clitkConvertBLUTCoeffsToVFFilter.txx"
93 #endif // clitkConvertBLUTCoeffsToVFFilter_h