]> Creatis software - clitk.git/blob - registration/clitkBSplineDeformableRegistrationGenericFilter.h
2508a381da7da7aaf8df764b0e0c32b45e8321f1
[clitk.git] / registration / clitkBSplineDeformableRegistrationGenericFilter.h
1 /*=========================================================================
2   Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
3
4   Authors belong to: 
5   - University of LYON              http://www.universite-lyon.fr/
6   - Léon Bérard cancer center       http://www.centreleonberard.fr
7   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
8
9   This software is distributed WITHOUT ANY WARRANTY; without even
10   the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11   PURPOSE.  See the copyright notices for more information.
12
13   It is distributed under dual licence
14
15   - BSD        See included LICENSE.txt file
16   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ===========================================================================**/
18 #ifndef _clitkBSplineDeformableRegistrationGenericFilter_h
19 #define _clitkBSplineDeformableRegistrationGenericFilter_h
20 /**
21    =================================================
22    * @file   clitkBSplineDeformableRegistrationGenericFilter.h
23    * @author Jef Vandemeulebroucke <jef@creatis.insa-lyon.fr>
24    * @date   14 March 2009
25    * 
26    * @brief 
27    * 
28    =================================================*/
29
30 // clitk
31 #include "clitkBSplineDeformableRegistration_ggo.h"
32 #include "clitkIO.h"
33 #include "clitkImageCommon.h"
34 #include "clitkDifferenceImageFilter.h"
35 #include "clitkTransformUtilities.h"
36 #include "clitkLBFGSBOptimizer.h"
37 #include "clitkBSplineDeformableTransform.h"
38 #include "clitkGenericOptimizer.h"
39 #include "clitkGenericInterpolator.h"
40 #include "clitkGenericMetric.h"
41
42 // itk include
43 #include "itkMultiResolutionImageRegistrationMethod.h"
44 #include "itkMultiResolutionPyramidImageFilter.h"
45 #include "itkImage.h"
46 #include "itkBSplineDeformableTransform.h"
47 #include "itkImageFileReader.h"
48 #include "itkImageFileWriter.h"
49 #include "itkResampleImageFilter.h"
50 #include "itkCommand.h"
51 #include "itkImageMaskSpatialObject.h"
52 #include "itkEuler3DTransform.h"
53 #include "itkWarpImageFilter.h"
54 #include "itkLightObject.h"
55 #include "itkImageToImageMetric.h"
56 #include "itkInterpolateImageFunction.h"
57 #include "itkLabelStatisticsImageFilter.h"
58
59
60 namespace clitk
61 {
62
63   class ITK_EXPORT BSplineDeformableRegistrationGenericFilter : public itk::LightObject
64   
65   {
66   public:
67     typedef BSplineDeformableRegistrationGenericFilter  Self;
68     typedef itk::LightObject                   Superclass;
69     typedef itk::SmartPointer<Self>            Pointer;
70     typedef itk::SmartPointer<const Self>      ConstPointer;
71     
72     /** Method for creation through the object factory. */
73     itkNewMacro(Self);  
74     
75     /** Run-time type information (and related methods) */
76     itkTypeMacro( BSplineDeformableRegistrationGenericFilter, LightObject );
77     
78     
79     //====================================================================
80     // Set methods
81     void SetArgsInfo(const args_info_clitkBSplineDeformableRegistration& a)
82     {
83       m_ArgsInfo=a;
84       m_ReferenceFileName=m_ArgsInfo.reference_arg;
85       m_Verbose=m_ArgsInfo.verbose_flag;
86     }
87     
88     //====================================================================
89     // Update
90     virtual void Update();
91     
92   protected:
93     //const char * GetNameOfClass() const { return "BSplineDeformableRegistrationGenericFilter"; }
94     
95     //====================================================================
96     // Constructor & Destructor
97     BSplineDeformableRegistrationGenericFilter();
98     ~BSplineDeformableRegistrationGenericFilter(){;}
99     
100     //====================================================================
101     //Protected member functions
102     template <unsigned int Dimension>  void UpdateWithDim(std::string PixelType);
103     template <unsigned int Dimension, class PixelType>  void UpdateWithDimAndPixelType();
104     
105     args_info_clitkBSplineDeformableRegistration m_ArgsInfo;
106     bool m_Verbose;
107     std::string m_ReferenceFileName;
108     
109   };
110   
111 } // end namespace clitk
112 #ifndef ITK_MANUAL_INSTANTIATION
113 #include "clitkBSplineDeformableRegistrationGenericFilter.txx"
114 #endif
115   
116 #endif //#define _clitkBSplineDeformableRegistrationGenericFilter_h
117
118
119
120