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 # if ITK_VERSION_MINOR < 6
12 # include "itkTransformToDisplacementFieldSource.h"
14 # include "itkTransformToDisplacementFieldFilter.h"
20 template <class TDVFType>
21 class ConvertBLUTCoeffsToVFFilter :
22 public itk::ImageSource<TDVFType>
26 /** Standard class typedefs. */
27 typedef ConvertBLUTCoeffsToVFFilter Self;
28 typedef itk::ImageSource<TDVFType> Superclass;
29 typedef itk::SmartPointer<Self> Pointer;
30 typedef itk::SmartPointer<const Self> ConstPointer;
33 typedef itk::ImageIOBase LikeImageType;
34 typedef typename LikeImageType::Pointer LikeImagePointer;
36 typedef TDVFType OutputImageType;
37 typedef typename OutputImageType::Pointer OutputImagePointer;
38 typedef typename OutputImageType::ConstPointer OutputImageConstPointer;
39 typedef typename OutputImageType::RegionType OutputImageRegionType;
40 typedef typename OutputImageType::SizeType OutputImageSizeType;
41 typedef typename OutputImageType::PointType OutputImagePointType;
42 typedef typename OutputImageType::SpacingType OutputImageSpacingType;
44 typedef clitk::BSplineDeformableTransform<double, TDVFType::ImageDimension, TDVFType::ImageDimension> BLUTTransformType;
45 typedef typename BLUTTransformType::CoefficientImageType BLUTCoefficientImageType;
46 typedef itk::BSplineDeformableTransform<double, TDVFType::ImageDimension, TDVFType::ImageDimension> ITKTransformType;
48 typedef itk::Transform< double, TDVFType::ImageDimension, TDVFType::ImageDimension> GenericTransformType;
50 #if ITK_VERSION_MAJOR >= 4
51 # if ITK_VERSION_MINOR < 6
52 typedef itk::TransformToDisplacementFieldSource<OutputImageType, double> ConvertorType;
54 typedef itk::TransformToDisplacementFieldFilter<OutputImageType, double> ConvertorType;
60 itkSetMacro(Verbose, bool);
61 itkSetMacro(InputFileName, std::string);
62 itkSetMacro(LikeFileName, std::string);
63 itkSetMacro(OutputOrigin, OutputImagePointType);
64 itkSetMacro(OutputSpacing, OutputImageSpacingType);
65 itkSetMacro(OutputSize, OutputImageSizeType);
66 itkSetMacro(TransformType, unsigned int);
67 itkSetMacro(MaskFileName, std::string);
68 itkSetMacro(BLUTSplineOrders, typename BLUTCoefficientImageType::SizeType);
70 /** DeformationFieldImageFilter produces a vector image. */
71 virtual void GenerateOutputInformation( void );
75 ConvertBLUTCoeffsToVFFilter();
76 ~ConvertBLUTCoeffsToVFFilter() {};
78 virtual void GenerateData();
81 unsigned int m_TransformType;
82 typename BLUTTransformType::Pointer m_BLUTTransform;
83 typename ITKTransformType::Pointer m_ITKTransform;
84 typename GenericTransformType::Pointer m_GenericTransform;
86 std::string m_InputFileName, m_LikeFileName, m_MaskFileName;
87 OutputImageSizeType m_OutputSize;
88 OutputImageSpacingType m_OutputSpacing;
89 OutputImagePointType m_OutputOrigin;
90 typename BLUTCoefficientImageType::SizeType m_BLUTSplineOrders;
91 typename ConvertorType::Pointer m_Filter;
95 #include "clitkConvertBLUTCoeffsToVFFilter.txx"
97 #endif // clitkConvertBLUTCoeffsToVFFilter_h