1 /*=========================================================================
4 Module: $RCSfile: clitkSignalMeanPositionFilter.h,v $
6 Date: $Date: 2010/02/10 14:55:00 $
7 Version: $Revision: 1.4 $
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.
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.
17 =========================================================================*/
19 #ifndef CLITKSIGNALMEANPOSITIONFILTER_H
20 #define CLITKSIGNALMEANPOSITIONFILTER_H
22 #include "clitkSignalMeanPositionTracking_ggo.h"
23 #include "clitkSignal.h"
24 #include "clitkEllipse.h"
25 #include "itkVector.h"
30 //---------------------------------------------------------------------
31 class SignalMeanPositionFilter {
33 typedef itk::Vector<double,2> Vector2d;
35 void SetParameters(args_info_clitkSignalMeanPositionTracking & args_info);
39 args_info_clitkSignalMeanPositionTracking args_info;
41 clitk::Signal mAugmentedInputX;
42 clitk::Signal mAugmentedInputY;
43 int mAugmentationDelay;
47 bool mOutputFilenameIsSet;
48 bool mOutputResidualFilenameIsSet;
49 bool mOutputAugmentedFilenameIsSet;
50 std::string mOutputFilename;
51 std::string mOutputResidualFilename;
52 std::string mOutputAugmentedFilename;
54 bool mVerboseIteration;
55 bool mIsAdaptiveMethod;
56 std::vector<double> mCurrentResidual;
58 std::vector<clitk::Ellipse*> mListOfEllipses;
60 bool mValidationWithRealPhase;
61 std::string mInputPhaseFilename;
62 clitk::Signal mInputPhase;
63 std::vector<int> mCycles;
65 std::vector<int> mIsoPhaseIndex;
66 std::vector<double> mIsoPhaseDelta;
67 std::vector<int> mIsoPhaseDeltaNb;
68 std::vector<double> mIsoPhaseRefAngle;
70 bool mUseLearnedDeltaPhase;
71 clitk::Signal mLearnIsoPhaseDelta;
72 int mNumberOfIsoPhase;
74 void FitEllipse(clitk::Ellipse & An);
75 void AdaptiveFitEllipse(clitk::Ellipse & An);
77 void ComputeIsoPhase(std::vector<clitk::Ellipse*> & l,
78 std::vector<double> & phase,
79 std::vector<int> & cycles);
81 //---------------------------------------------------------------------