#ifndef clitkConvertBLUTCoeffsToVFFilter_h #define clitkConvertBLUTCoeffsToVFFilter_h #include "clitkIO.h" #include "clitkCommon.h" #include "clitkImageCommon.h" #include "clitkBSplineDeformableTransform.h" #include "itkBSplineDeformableTransform.h" #if (ITK_VERSION_MAJOR == 4) && (ITK_VERSION_MINOR < 6) # include "itkTransformToDisplacementFieldSource.h" #else # include "itkTransformToDisplacementFieldFilter.h" #endif namespace clitk { template class ConvertBLUTCoeffsToVFFilter : public itk::ImageSource { public: /** Standard class typedefs. */ typedef ConvertBLUTCoeffsToVFFilter Self; typedef itk::ImageSource Superclass; typedef itk::SmartPointer Pointer; typedef itk::SmartPointer ConstPointer; // ImageTypes typedef itk::ImageIOBase LikeImageType; typedef typename LikeImageType::Pointer LikeImagePointer; typedef TDVFType OutputImageType; typedef typename OutputImageType::Pointer OutputImagePointer; typedef typename OutputImageType::ConstPointer OutputImageConstPointer; typedef typename OutputImageType::RegionType OutputImageRegionType; typedef typename OutputImageType::SizeType OutputImageSizeType; typedef typename OutputImageType::PointType OutputImagePointType; typedef typename OutputImageType::SpacingType OutputImageSpacingType; typedef clitk::BSplineDeformableTransform BLUTTransformType; typedef typename BLUTTransformType::CoefficientImageType BLUTCoefficientImageType; typedef itk::BSplineDeformableTransform ITKTransformType; typedef itk::BSplineDeformableTransform ITKTransformTypeZero; typedef itk::BSplineDeformableTransform ITKTransformTypeOne; typedef itk::BSplineDeformableTransform ITKTransformTypeTwo; typedef itk::BSplineDeformableTransform ITKTransformTypeFour; typedef itk::Transform< double, TDVFType::ImageDimension, TDVFType::ImageDimension> GenericTransformType; #if (ITK_VERSION_MAJOR == 4) && (ITK_VERSION_MINOR < 6) typedef itk::TransformToDisplacementFieldSource ConvertorType; #else typedef itk::TransformToDisplacementFieldFilter ConvertorType; #endif itkNewMacro(Self); itkSetMacro(Verbose, bool); itkSetMacro(InputFileName, std::string); itkSetMacro(LikeFileName, std::string); itkSetMacro(OutputOrigin, OutputImagePointType); itkSetMacro(OutputSpacing, OutputImageSpacingType); itkSetMacro(OutputSize, OutputImageSizeType); itkSetMacro(TransformType, unsigned int); itkSetMacro(MaskFileName, std::string); itkSetMacro(BLUTSplineOrders, typename BLUTCoefficientImageType::SizeType); /** DeformationFieldImageFilter produces a vector image. */ virtual void GenerateOutputInformation( void ); private: ConvertBLUTCoeffsToVFFilter(); ~ConvertBLUTCoeffsToVFFilter() {}; virtual void GenerateData(); bool m_Verbose; unsigned int m_TransformType; typename BLUTTransformType::Pointer m_BLUTTransform; typename ITKTransformType::Pointer m_ITKTransform; typename GenericTransformType::Pointer m_GenericTransform; std::string m_InputFileName, m_LikeFileName, m_MaskFileName; OutputImageSizeType m_OutputSize; OutputImageSpacingType m_OutputSpacing; OutputImagePointType m_OutputOrigin; typename BLUTCoefficientImageType::SizeType m_BLUTSplineOrders; typename ConvertorType::Pointer m_Filter; }; } #include "clitkConvertBLUTCoeffsToVFFilter.txx" #endif // clitkConvertBLUTCoeffsToVFFilter_h