diff --git a/include/trackerReal.h b/include/trackerReal.h index 527dc0d741ea518971ff7d224223bf86a52410bf..e6808106c293443cbad92359762d2c9b6ff981ee 100644 --- a/include/trackerReal.h +++ b/include/trackerReal.h @@ -101,6 +101,7 @@ private: double mHeight; // height of the person int mFirstFrame; // 0.. frame where the person was tracked the first time int mLastFrame; // 0.. + int mMarkerID = -1; //set to -1 as -1 does not naturally occur as a ArucoMarkerNumber-value public: TrackPersonReal(); @@ -131,6 +132,14 @@ public: { mLastFrame = f; } + inline int getMarkerID() const + { + return mMarkerID; + } + inline void setMarkerID(int markerID) + { + mMarkerID = markerID; + } bool trackPointExist(int frame) const; const TrackPointReal& trackPointAt(int frame) const; // & macht bei else probleme, sonst mit [] zugreifbar // gibt -1 zurueck, wenn frame oder naechster frame nicht existiert @@ -140,7 +149,7 @@ public: // double distanceXBetweenFrames(int fromFrame, int toFrame) const; // double distanceYBetweenFrames(int fromFrame, int toFrame) const; // double velocityToNextFrame(int frame) const; - void init(int firstFrame, double height); + void init(int firstFrame, double height, int markerID); void addEnd(const QPointF& pos, int frame); void addEnd(const Vec3F& pos, int frame); void addEnd(const QPointF& pos, int frame, const QPointF &dir); diff --git a/src/trackerReal.cpp b/src/trackerReal.cpp index 7abffdc6d91e31b39dc254273ea58f8a5240e00e..3d77a5a617a6b716038ac6e6ef58f7e731b34d03 100644 --- a/src/trackerReal.cpp +++ b/src/trackerReal.cpp @@ -78,12 +78,13 @@ double TrackPersonReal::distanceToNextFrame(int frame) const else return -1; } -void TrackPersonReal::init(int firstFrame, double height) +void TrackPersonReal::init(int firstFrame, double height, int markerID) { clear(); mFirstFrame = firstFrame; mLastFrame = firstFrame-1; mHeight = height; + setMarkerID(markerID); } void TrackPersonReal::addEnd(const QPointF& pos, int frame) @@ -209,6 +210,7 @@ int TrackerReal::calculate(Tracker *tracker, ImageItem *imageItem, ColorPlot *co int extrapolated; QPointF colPos; float angle; + int markerID; for (i = 0; i < tracker->size(); ++i) // ueber trajektorien { @@ -232,7 +234,10 @@ int TrackerReal::calculate(Tracker *tracker, ImageItem *imageItem, ColorPlot *co //tmpMissingListAnz.removeFirst(); // anzahl } } - trackPersonReal.init(firstFrame+addFrames, height); + + markerID = (*tracker)[i].getMarkerID(); // set markerID to TrackPerson.markerID + + trackPersonReal.init(firstFrame+addFrames, height, markerID); tsize = tracker->at(i).size(); for (j = 0; (j < tsize); ++j) // ueber trackpoints { @@ -609,7 +614,7 @@ void TrackerReal::exportTxt(QTextStream &out, bool alternateHeight, bool useTrac out << " " << at(i).at(j).angleOfView() << endl; if (exportMarkerID) - out << " " << at(i).at(j).getMarkerID() << endl; + out << " " << at(i).getMarkerID() << endl; else out << endl; }