]> Creatis software - clitk.git/blob - registration/clitkAffineRegistrationGenericFilter.h
inherits from ImageToImageGenericFilter class
[clitk.git] / registration / clitkAffineRegistrationGenericFilter.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://oncora1.lyon.fnclcc.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
19 #ifndef CLITKAFFINEREGISTRATIONGENERICFILTER_H
20 #define CLITKAFFINEREGISTRATIONGENERICFILTER_H
21
22 // clitk include
23 #include "clitkIO.h"
24 #include "clitkCommon.h"
25 #include "clitkAffineRegistration_ggo.h"
26 #include "clitkCorrelationRatioImageToImageMetric.h"
27 #include "clitkTransformUtilities.h"
28 #include "clitkGenericMetric.h"
29 #include "clitkGenericOptimizer.h"
30 #include "clitkGenericInterpolator.h"
31 #include "clitkGenericAffineTransform.h"
32 #include "clitkImageToImageGenericFilter.h"
33
34
35 //itk include
36 #include <itkMultiResolutionImageRegistrationMethod.h>
37 #include <itkMultiResolutionPyramidImageFilter.h>
38 #include <itkImageToImageMetric.h>
39 #include <itkEuler2DTransform.h>
40 #include <itkCenteredEuler3DTransform.h>
41 #include <itkImage.h>
42 #include <itkResampleImageFilter.h>
43 #include <itkCastImageFilter.h>
44 #include <itkNormalizeImageFilter.h>
45 #include <itkDiscreteGaussianImageFilter.h>
46 #include <itkImageMaskSpatialObject.h>
47 #include <itkCommand.h>
48 #include <itkCheckerBoardImageFilter.h>
49 #include <itkSubtractImageFilter.h>
50 #include <itkLightObject.h>
51 #include <itkImageMomentsCalculator.h>
52 #include <itkThresholdImageFilter.h>
53
54 // other includes
55 #include <time.h>
56 #include <iostream>
57 #include <iomanip>
58
59 namespace clitk
60 {
61
62 //====================================================================
63 template<class args_info_clitkAffineRegistration>
64 class ITK_EXPORT AffineRegistrationGenericFilter:
65     public ImageToImageGenericFilter<AffineRegistrationGenericFilter<args_info_clitkAffineRegistration> >
66 {
67 public:
68
69   AffineRegistrationGenericFilter();
70
71   //================================================
72   typedef AffineRegistrationGenericFilter        Self;
73   typedef itk::SmartPointer<Self>        Pointer;
74   typedef itk::SmartPointer<const Self> ConstPointer;
75
76   //================================================
77   itkNewMacro(Self);
78   itkTypeMacro(AffineRegistrationGenericFilter, LightObject);
79
80
81   //====================================================================
82   // Set methods
83   void SetArgsInfo(const args_info_clitkAffineRegistration args_info) {
84     m_ArgsInfo=args_info;
85     m_Verbose=m_ArgsInfo.verbose_flag;
86     if (m_ArgsInfo.reference_given) {
87       SetInputFilename(m_ArgsInfo.reference_arg);
88     }
89     if (m_ArgsInfo.target_given) {
90       SetOutputFilename(m_ArgsInfo.target_arg);
91     }
92
93   }
94   //====================================================================
95   template<unsigned int Dim>
96   void InitializeImageType();
97
98   bool m_Verbose;
99   args_info_clitkAffineRegistration m_ArgsInfo;
100
101   template<class InputImageType>
102   void UpdateWithInputImageType();
103 };
104 }
105
106 #ifndef ITK_MANUAL_INSTANTIATION
107 #include "clitkAffineRegistrationGenericFilter.txx"
108 #endif
109
110
111 #endif //#define CLITKAFFINEREGISTRATIONGENERICFILTER__H