]> Creatis software - clitk.git/blob - tools/clitkRigidRegistration.cxx
added the new headers
[clitk.git] / tools / clitkRigidRegistration.cxx
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  -------------------------------------------------
20  * @file   clitkRigidRegistration.cxx
21  * @author Jef Vandemeulebroucke <jef.Vandemeulebroucke@creatis.insa-lyon.fr>
22  * @date   14 August 2007
23  * 
24  * @brief Perform a rigid registration between 2 images
25  * 
26  -------------------------------------------------*/
27
28
29 // clitk include
30 #include "clitkIO.h"
31 #include "clitkImageCommon.h"
32 #include "clitkRigidRegistration_ggo.h"
33 #include "clitkRigidRegistrationGenericFilter.h"
34
35 using namespace clitk;
36 using namespace std;
37
38
39 int main( int argc, char *argv[] )
40 {
41   //init command line and check options
42   GGO(args_info);  
43   CLITK_INIT;
44   
45   //---------------------------------------------------------------------------
46   //Set all the options passed through the commandline
47
48   RigidRegistrationGenericFilter rigidRegistration;
49
50   rigidRegistration.SetVerbose(args_info.verbose_flag);
51   rigidRegistration.SetGradient(args_info.gradient_flag);
52   rigidRegistration.SetZeroOrigin(args_info.zero_origin_flag);
53
54  //Input
55   rigidRegistration.SetFixedImageName(args_info.reference_arg);
56   rigidRegistration.SetMovingImageName(args_info.object_arg);
57   rigidRegistration.SetFixedImageMaskGiven(args_info.mask_given);
58   if (args_info.mask_given)   rigidRegistration.SetFixedImageMaskName(args_info.mask_arg);
59
60   //Output
61   rigidRegistration.SetOutputGiven(args_info.output_given);
62   if (args_info.output_given)  rigidRegistration.SetOutputName(args_info.output_arg);
63   rigidRegistration.SetCheckerAfterGiven(args_info.checker_after_given);
64   if (args_info.checker_after_given)  rigidRegistration.SetCheckerAfterName(args_info.checker_after_arg);
65   rigidRegistration.SetCheckerBeforeGiven(args_info.checker_before_given);
66   if (args_info.checker_before_given)  rigidRegistration.SetCheckerBeforeName(args_info.checker_before_arg);
67   rigidRegistration.SetBeforeGiven(args_info.before_given);
68   if (args_info.before_given)  rigidRegistration.SetBeforeName(args_info.before_arg);
69   rigidRegistration.SetAfterGiven(args_info.after_given);
70   if (args_info.after_given)  rigidRegistration.SetAfterName(args_info.after_arg);
71   rigidRegistration.SetMatrixGiven(args_info.matrix_given);
72   if (args_info.matrix_given)  rigidRegistration.SetMatrixName(args_info.matrix_arg);
73
74   //Interp
75   rigidRegistration.SetInterpType(args_info.interp_arg);
76
77   //Transform
78   rigidRegistration.SetRotX(args_info.rotX_arg);
79   rigidRegistration.SetRotY(args_info.rotY_arg);
80   rigidRegistration.SetRotZ(args_info.rotZ_arg);
81   rigidRegistration.SetTransX(args_info.transX_arg);
82   rigidRegistration.SetTransY(args_info.transY_arg);
83   rigidRegistration.SetTransZ(args_info.transZ_arg);
84
85   //Optimizer
86   rigidRegistration.SetLevels(args_info.levels_arg); 
87   rigidRegistration.SetIstep(args_info.Istep_arg); 
88   rigidRegistration.SetFstep(args_info.Fstep_arg); 
89   rigidRegistration.SetRelax(args_info.relax_arg);
90   rigidRegistration.SetInc(args_info.inc_arg);
91   rigidRegistration.SetDec(args_info.dec_arg);
92   rigidRegistration.SetIter(args_info.iter_arg);
93   rigidRegistration.SetRweight(args_info.Rweight_arg);
94   rigidRegistration.SetTweight(args_info.Tweight_arg);
95
96   //Metric
97   rigidRegistration.SetMetricType(args_info.metric_arg);
98   rigidRegistration.SetSamples(args_info.samples_arg);
99   rigidRegistration.SetBins(args_info.bins_arg);
100   rigidRegistration.SetRandom(args_info.random_flag);
101   rigidRegistration.SetStdDev(args_info.stdDev_arg);
102
103   //Preprocessing
104   rigidRegistration.SetBlur(args_info.blur_arg); 
105   rigidRegistration.SetNormalize(args_info.normalize_flag); 
106
107   rigidRegistration.Update();
108   
109 }