00001 #ifndef __itkSimpleDiffeomorphicRegistration_h 00002 #define __itkSimpleDiffeomorphicRegistration_h 00003 00004 #include <string> 00005 #include "itkImage.h" 00006 #include "itkObject.h" 00007 // #include "BRAINSDemonWarp.h" 00008 #include "itkVector.h" 00009 #include "DemonsPreprocessor.h" 00010 #include "DemonsRegistrator.h" 00011 00012 #define DIM 3 00013 #define MaxStepLength 2 00014 #define SmoothDeformationFieldSigma 1.5 00015 #define NumberOfLevels 5 00016 #define NumberOfIteration0 300 00017 #define NumberOfIteration1 100 // 100 00018 #define NumberOfIteration2 30 // 30 00019 #define NumberOfIteration3 20 // 20 00020 #define NumberOfIteration4 15 // 15 00021 #define FixedPyramid 16 00022 #define NumberOfMatchPoints 7 00023 #define NumberOfHistogramLevels 1024 00024 00027 class itkSimpleDiffeomorphicRegistration:public itk::Object 00028 { 00029 public: 00030 typedef itk::Image< float, DIM > TRealImage; 00031 typedef itk::DemonsPreprocessor< TRealImage, 00032 TRealImage > DemonsPreprocessorType; 00033 typedef itk::DemonsRegistrator< TRealImage, TRealImage, 00034 float > DemonsRegistratorType; 00035 typedef itk::Image< itk::Vector< float, DIM >, DIM > TDeformationField; 00036 00037 itkSimpleDiffeomorphicRegistration(); 00038 itkSetObjectMacro(FixedImage, TRealImage); 00039 itkSetObjectMacro(MovingImage, TRealImage); 00040 00041 itkSetStringMacro(DeformationFieldName); 00042 itkSetStringMacro(DeformedImageName); 00043 itkGetStringMacro(DeformedImageName); 00044 itkGetObjectMacro(DeformationField, TDeformationField); 00045 void Update(); 00046 00047 protected: 00048 // std::string GetFixedImage(void); 00049 // std::string GetMovingImage(void); 00050 // std::string GetDeformedImageName(void); 00051 // std::string GetDisplacementPrefixName(void); 00052 void InitializePreprocessor(); 00053 00054 void Initialization(void); 00055 00056 private: 00057 DemonsPreprocessorType::Pointer m_DemonsPreprocessor; 00058 DemonsRegistratorType::Pointer m_DemonsRegistrator; 00059 TDeformationField::Pointer m_DeformationField; 00060 TRealImage::Pointer m_FixedImage; 00061 TRealImage::Pointer m_MovingImage; 00062 std::string m_DeformedImageName; 00063 std::string m_DeformationFieldName; 00064 }; 00065 00066 #endif
1.6.1