1 /*=========================================================================
4 Module: $RCSfile: clitkSignalApparentMotionTrackingFilter.h,v $
6 Date: $Date: 2010/03/03 12:41:27 $
7 Version: $Revision: 1.1 $
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 SIGNALAPPARENTMOTIONTRACKINGFILTER_H
20 #define SIGNALAPPARENTMOTIONTRACKINGFILTER_H
22 #include "clitkSignalApparentMotionTracking_ggo.h"
23 #include "clitkSignal.h"
24 #include "clitkEllipse.h"
25 #include "clitkTrajectory2D.h"
26 #include "itkVector.h"
31 //---------------------------------------------------------------------
32 class SignalApparentMotionTrackingFilter {
34 typedef itk::Vector<double,2> Vector2d;
36 void SetParameters(args_info_clitkSignalApparentMotionTracking & args_info);
40 args_info_clitkSignalApparentMotionTracking args_info;
43 clitk::Signal mRefPhase;
44 clitk::Signal mInputU;
45 clitk::Signal mInputV;
48 clitk::Signal mIsoPhaseU;
49 clitk::Signal mIsoPhaseV;
52 std::vector<Trajectory2D> mReferenceTrajectoriesBD;
53 clitk::Signal mReferencePhase;
54 clitk::Trajectory2D mInput;
55 clitk::Trajectory2D mInputRelative;
56 clitk::Trajectory2D mInputMean;
57 std::vector<Vector2d> mReferenceMean;
59 void ComputeMeanAndIsoPhase(clitk::Signal & s, int delay, int L, int nbIso,
60 clitk::Signal & mean, clitk::Signal & isoPhase);
61 void ComputeMeanAndIsoPhase(clitk::Trajectory2D & s, int delay, int L,
62 int nbIsoPhase, clitk::Trajectory2D & mean,
63 std::vector<int> & isoPhase);
64 void EstimatePhase(const clitk::Trajectory2D & input,
65 const int begin, const int end,
66 const clitk::Trajectory2D & ref,
67 const clitk::Signal & phaseref,
68 clitk::Signal & phase);
69 int FindPhaseDelta(const clitk::Trajectory2D & A, const clitk::Trajectory2D & B) const;
70 int FindClosestTrajectory(const std::vector<Vector2d> & meanlist, const Vector2d & mean);
71 void ReadDB(std::string filename, std::vector<Trajectory2D> & bd);
73 //---------------------------------------------------------------------