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