]> Creatis software - clitk.git/blob - tools/clitkSignalMeanPositionFilter.h
Initial revision
[clitk.git] / tools / clitkSignalMeanPositionFilter.h
1 /*=========================================================================
2                                                                                 
3   Program:   clitk
4   Module:    $RCSfile: clitkSignalMeanPositionFilter.h,v $
5   Language:  C++
6   Date:      $Date: 2010/01/06 13:31:56 $
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 #ifndef CLITKSIGNALMEANPOSITIONFILTER_H
20 #define CLITKSIGNALMEANPOSITIONFILTER_H
21
22 #include "clitkSignalMeanPositionTracking_ggo.h"
23 #include "clitkSignal.h"
24 #include "clitkEllipse.h"
25 #include "itkVector.h"
26
27 namespace clitk {
28
29   //---------------------------------------------------------------------
30   class SignalMeanPositionFilter {
31   public:
32     typedef itk::Vector<double,2> Vector2d;
33
34     void SetParameters(gengetopt_args_info_clitkSignalMeanPositionTracking & args_info);
35     void Update();
36     
37   protected:    
38     gengetopt_args_info_clitkSignalMeanPositionTracking args_info;
39     clitk::Signal mInput;
40     clitk::Signal mAugmentedInputX;
41     clitk::Signal mAugmentedInputY;
42     int mAugmentationDelay;
43     int mMaxIteration;
44     double mEta;
45     bool mEtaIsSet;
46     bool mOutputFilenameIsSet;
47     bool mOutputResidualFilenameIsSet;
48     bool mOutputAugmentedFilenameIsSet;
49     std::string mOutputFilename;
50     std::string mOutputResidualFilename;
51     std::string mOutputAugmentedFilename;
52     bool mVerbose;
53     bool mVerboseIteration;
54     bool mIsAdaptiveMethod;
55     std::vector<double> mCurrentResidual;
56     int mWindowLength;
57     std::vector<Vector2d> mCenters;
58
59     void FitEllipse(clitk::Ellipse & An);
60     void AdaptiveFitEllipse(clitk::Ellipse & An);
61
62     void ComputeAugmentedSpace(const clitk::Signal & input, 
63                                clitk::Signal & outputX, 
64                                clitk::Signal & outputY, 
65                                unsigned int delay);
66   };
67   //---------------------------------------------------------------------
68   
69 } // end namespace
70
71 #endif