itkSimpleDiffeomorphicRegistration.h

Go to the documentation of this file.
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

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1