]> Creatis software - clitk.git/blob - tools/clitkRigidRegistration.cxx
mechanism for hiding experimental stuff in vv
[clitk.git] / tools / clitkRigidRegistration.cxx
1 /*-------------------------------------------------------------------------
2                                                                                 
3   Program:   clitk
4   Language:  C++
5                                                                                 
6   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
7   l'Image). All rights reserved. See Doc/License.txt or
8   http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
9                                                                                 
10      This software is distributed WITHOUT ANY WARRANTY; without even
11      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12      PURPOSE.  See the above copyright notices for more information.
13                                                                              
14 -------------------------------------------------------------------------*/
15
16 /**
17  -------------------------------------------------
18  * @file   clitkRigidRegistration.cxx
19  * @author Jef Vandemeulebroucke <jef.Vandemeulebroucke@creatis.insa-lyon.fr>
20  * @date   14 August 2007
21  * 
22  * @brief Perform a rigid registration between 2 images
23  * 
24  -------------------------------------------------*/
25
26
27 // clitk include
28 #include "clitkIO.h"
29 #include "clitkImageCommon.h"
30 #include "clitkRigidRegistration_ggo.h"
31 #include "clitkRigidRegistrationGenericFilter.h"
32
33 using namespace clitk;
34 using namespace std;
35
36
37 int main( int argc, char *argv[] )
38 {
39   //init command line and check options
40   GGO(args_info);  
41   CLITK_INIT;
42   
43   //---------------------------------------------------------------------------
44   //Set all the options passed through the commandline
45
46   RigidRegistrationGenericFilter rigidRegistration;
47
48   rigidRegistration.SetVerbose(args_info.verbose_flag);
49   rigidRegistration.SetGradient(args_info.gradient_flag);
50   rigidRegistration.SetZeroOrigin(args_info.zero_origin_flag);
51
52  //Input
53   rigidRegistration.SetFixedImageName(args_info.reference_arg);
54   rigidRegistration.SetMovingImageName(args_info.object_arg);
55   rigidRegistration.SetFixedImageMaskGiven(args_info.mask_given);
56   if (args_info.mask_given)   rigidRegistration.SetFixedImageMaskName(args_info.mask_arg);
57
58   //Output
59   rigidRegistration.SetOutputGiven(args_info.output_given);
60   if (args_info.output_given)  rigidRegistration.SetOutputName(args_info.output_arg);
61   rigidRegistration.SetCheckerAfterGiven(args_info.checker_after_given);
62   if (args_info.checker_after_given)  rigidRegistration.SetCheckerAfterName(args_info.checker_after_arg);
63   rigidRegistration.SetCheckerBeforeGiven(args_info.checker_before_given);
64   if (args_info.checker_before_given)  rigidRegistration.SetCheckerBeforeName(args_info.checker_before_arg);
65   rigidRegistration.SetBeforeGiven(args_info.before_given);
66   if (args_info.before_given)  rigidRegistration.SetBeforeName(args_info.before_arg);
67   rigidRegistration.SetAfterGiven(args_info.after_given);
68   if (args_info.after_given)  rigidRegistration.SetAfterName(args_info.after_arg);
69   rigidRegistration.SetMatrixGiven(args_info.matrix_given);
70   if (args_info.matrix_given)  rigidRegistration.SetMatrixName(args_info.matrix_arg);
71
72   //Interp
73   rigidRegistration.SetInterpType(args_info.interp_arg);
74
75   //Transform
76   rigidRegistration.SetRotX(args_info.rotX_arg);
77   rigidRegistration.SetRotY(args_info.rotY_arg);
78   rigidRegistration.SetRotZ(args_info.rotZ_arg);
79   rigidRegistration.SetTransX(args_info.transX_arg);
80   rigidRegistration.SetTransY(args_info.transY_arg);
81   rigidRegistration.SetTransZ(args_info.transZ_arg);
82
83   //Optimizer
84   rigidRegistration.SetLevels(args_info.levels_arg); 
85   rigidRegistration.SetIstep(args_info.Istep_arg); 
86   rigidRegistration.SetFstep(args_info.Fstep_arg); 
87   rigidRegistration.SetRelax(args_info.relax_arg);
88   rigidRegistration.SetInc(args_info.inc_arg);
89   rigidRegistration.SetDec(args_info.dec_arg);
90   rigidRegistration.SetIter(args_info.iter_arg);
91   rigidRegistration.SetRweight(args_info.Rweight_arg);
92   rigidRegistration.SetTweight(args_info.Tweight_arg);
93
94   //Metric
95   rigidRegistration.SetMetricType(args_info.metric_arg);
96   rigidRegistration.SetSamples(args_info.samples_arg);
97   rigidRegistration.SetBins(args_info.bins_arg);
98   rigidRegistration.SetRandom(args_info.random_flag);
99   rigidRegistration.SetStdDev(args_info.stdDev_arg);
100
101   //Preprocessing
102   rigidRegistration.SetBlur(args_info.blur_arg); 
103   rigidRegistration.SetNormalize(args_info.normalize_flag); 
104
105   rigidRegistration.Update();
106   
107 }