comparison include/Motion.hpp @ 200:0a27fa343257

added one test and cleaned the first and last instant mess
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Fri, 02 Mar 2012 19:32:54 -0500
parents aeab0b88c9b6
children f7ddfc4aeb1e
comparison
equal deleted inserted replaced
199:ca9d9104afba 200:0a27fa343257
14 /** Class for feature data 14 /** Class for feature data
15 positions, velocities and other statistics to evaluate their quality 15 positions, velocities and other statistics to evaluate their quality
16 before saving. */ 16 before saving. */
17 class FeatureTrajectory { 17 class FeatureTrajectory {
18 public: 18 public:
19 FeatureTrajectory(const int& frameNum, const cv::Point2f& p, const cv::Mat& homography); 19 FeatureTrajectory(const unsigned int& frameNum, const cv::Point2f& p, const cv::Mat& homography);
20 20
21 FeatureTrajectory(TrajectoryPoint2fPtr& _positions, TrajectoryPoint2fPtr& _velocities); 21 FeatureTrajectory(TrajectoryPoint2fPtr& _positions, TrajectoryPoint2fPtr& _velocities);
22 22
23 /** loads from database 23 /** loads from database
24 can be made generic for different list and blob */ 24 can be made generic for different list and blob */
26 26
27 unsigned int length(void) const { return positions->size();} // cautious if not continuous: max-min+1 27 unsigned int length(void) const { return positions->size();} // cautious if not continuous: max-min+1
28 28
29 unsigned int getId(void) const { return positions->getId();} 29 unsigned int getId(void) const { return positions->getId();}
30 void setId(const unsigned int& id) { positions->setId(id);velocities->setId(id);} 30 void setId(const unsigned int& id) { positions->setId(id);velocities->setId(id);}
31
32 void setLost(void) { lost = true;}
33 bool isLost(void) { return lost;}
34 31
35 unsigned int getFirstInstant(void) {return firstInstant;} 32 unsigned int getFirstInstant(void) {return firstInstant;}
36 unsigned int getLastInstant(void) {return lastInstant;} 33 unsigned int getLastInstant(void) {return lastInstant;}
37 34
38 //TrajectoryPoint2fPtr& getPositions(void) { return positions;} 35 //TrajectoryPoint2fPtr& getPositions(void) { return positions;}
45 bool isMotionSmooth(const int& accelerationBound, const int& deviationBound) const; 42 bool isMotionSmooth(const int& accelerationBound, const int& deviationBound) const;
46 43
47 /// computes the distance according to the Beymer et al. algorithm 44 /// computes the distance according to the Beymer et al. algorithm
48 bool minMaxSimilarity(const FeatureTrajectory& ft, const int& firstInstant, const int& lastInstant, const float& connectionDistance, const float& segmentationDistance); 45 bool minMaxSimilarity(const FeatureTrajectory& ft, const int& firstInstant, const int& lastInstant, const float& connectionDistance, const float& segmentationDistance);
49 46
50 void addPoint(const int& frameNum, const cv::Point2f& p, const cv::Mat& homography); 47 void addPoint(const unsigned int& frameNum, const cv::Point2f& p, const cv::Mat& homography);
51 48
52 void shorten(void); 49 void shorten(void);
53 50
54 void write(TrajectoryDBAccess<cv::Point2f>& trajectoryDB, const std::string& positionsTableName, const std::string& velocitiesTableName) const; 51 void write(TrajectoryDBAccess<cv::Point2f>& trajectoryDB, const std::string& positionsTableName, const std::string& velocitiesTableName) const;
55 52
58 #endif 55 #endif
59 56
60 friend std::stringstream& operator<<(std::stringstream& out, const FeatureTrajectory& ft); 57 friend std::stringstream& operator<<(std::stringstream& out, const FeatureTrajectory& ft);
61 58
62 protected: 59 protected:
63 bool lost; /// \todo remove
64 /// first frame number 60 /// first frame number
65 unsigned int firstInstant; 61 unsigned int firstInstant;
66 /// last frame number 62 /// last frame number
67 unsigned int lastInstant; 63 unsigned int lastInstant;
68 64