Skip to content
Snippets Groups Projects
Commit b790df8c authored by Ann Katrin's avatar Ann Katrin
Browse files

WIP: define syncTrackPersonMarkerID() + apply in addPoint()

parent 7d921703
No related branches found
No related tags found
No related merge requests found
...@@ -318,6 +318,7 @@ public: ...@@ -318,6 +318,7 @@ public:
// gibt -1 zurueck, wenn frame oder naechster frame nicht existiert // gibt -1 zurueck, wenn frame oder naechster frame nicht existiert
// entfernung ist absolut // entfernung ist absolut
double distanceToNextFrame(int frame) const; double distanceToNextFrame(int frame) const;
void syncTrackPersonMarkerID(TrackPoint &tp);
}; };
//mHeightCount wird nicht e3xportiert und auch nicht wieder eingelesen -> nach import auf 0 obwohl auf height ein wert steht, daher immer mheight auf -1 testen!!! //mHeightCount wird nicht e3xportiert und auch nicht wieder eingelesen -> nach import auf 0 obwohl auf height ein wert steht, daher immer mheight auf -1 testen!!!
...@@ -489,6 +490,7 @@ public: ...@@ -489,6 +490,7 @@ public:
void purge(int frame); void purge(int frame);
private: private:
bool tryMergeTrajectories(const TrackPoint& v, size_t i, int frame); bool tryMergeTrajectories(const TrackPoint& v, size_t i, int frame);
...@@ -499,4 +501,6 @@ private: ...@@ -499,4 +501,6 @@ private:
void preCalculateImagePyramids(int level); void preCalculateImagePyramids(int level);
}; };
#endif #endif
...@@ -464,8 +464,9 @@ bool TrackPerson::insertAtFrame(int frame, const TrackPoint &p, int persNr, bool ...@@ -464,8 +464,9 @@ bool TrackPerson::insertAtFrame(int frame, const TrackPoint &p, int persNr, bool
for (i=1; i<(anz-1); ++i) // anz ist einer zu viel; zudem nur boie anz-1 , da sonst eh nur mit 1 multipliziert wuerde for (i=1; i<(anz-1); ++i) // anz ist einer zu viel; zudem nur boie anz-1 , da sonst eh nur mit 1 multipliziert wuerde
(*this)[frame-mFirstFrame+i].setQual((i*trackPointAt(frame+i).qual())/anz); (*this)[frame-mFirstFrame+i].setQual((i*trackPointAt(frame+i).qual())/anz);
} }
syncTrackPersonMarkerID(tp); // Funktion sucht, wie markerID von TrackPoint ist und macht Dinge abhängig davon und vom vorherigen TrackPoint
replace(frame-mFirstFrame, tp); replace(frame-mFirstFrame, tp);
if (tp.qual() > 100) // manual add // after inserting, because p ist const if (tp.qual() > 100) // manual add // after inserting, because p ist const
(*this)[frame-mFirstFrame].setQual(100); // so moving of a point is possible (*this)[frame-mFirstFrame].setQual(100); // so moving of a point is possible
//debout << "Warning: frame exists already in trajectory!" << endl; //debout << "Warning: frame exists already in trajectory!" << endl;
...@@ -1075,7 +1076,11 @@ bool Tracker::addPoint(TrackPoint &p, int frame, QSet<int> onlyVisible, int *per ...@@ -1075,7 +1076,11 @@ bool Tracker::addPoint(TrackPoint &p, int frame, QSet<int> onlyVisible, int *per
if (pers != NULL) if (pers != NULL)
*pers = iNearest; *pers = iNearest;
syncTrackPersonMarkerID(p);
(*this)[iNearest].setNewReco(true); (*this)[iNearest].setNewReco(true);
} }
//--i; //--i;
...@@ -2075,17 +2080,17 @@ void Tracker::purge(int frame) ...@@ -2075,17 +2080,17 @@ void Tracker::purge(int frame)
// Brief: Synchronize TrackPoint.mMarkerID with TrackPerson.mMarkerID // Brief: Synchronize TrackPoint.mMarkerID with TrackPerson.mMarkerID
// set PersonMarkerID from TrackPointMarkerID if MarkerID == -1 and check if not other "real ID" was detected - trigger warning otherwise // set PersonMarkerID from TrackPointMarkerID if MarkerID == -1 and check if not other "real ID" was detected - trigger warning otherwise
// Zu entscheiden: nutzung als funktion mit input+output oder als aufruf mit (*this)[i] // Zu entscheiden: nutzung als funktion mit input+output oder als aufruf mit (*this)[i]
// wie setTrackPersonHeight() ???? void TrackPerson::syncTrackPersonMarkerID(TrackPoint &tp) // usage of &pL für PointList oder &p für Point ???
void Tracker::syncTrackPersonMarkerID(QList<TrackPoint> &pL) // usage of &pL für PointList oder &p für Point ???
{ {
for (int i = 0; i < size(); ++i) // ueber TrackPerson int tpMarkerID = tp.markerID(); //MarkerID of currently handled trackpoint
if (tpMarkerID != -1)
{ {
if (TrackPoint.mMarkerID[i]!=-1) // first time a Person is found but marker is not detected if (mMarkerID == -1) // first time a Person is found
{ {
TrackPerson.mMarkerID = TrackPoint.mMarkerID; mMarkerID = tpMarkerID; // set TrackPerson MarkerID equal to TrackPoint MarkerID //pL[i].markerID();
} }
// else if (TrackPerson.mMarkerID == TrackPoint.mMarkerID){// do nothin all is fine} else if (mMarkerID != tpMarkerID)
else if (TrackPerson.mMarkerID != TrackPoint.mMarkerID)
{ {
cout << "ERROR: Two MarkerIDs were found for one trajectory." << endl; cout << "ERROR: Two MarkerIDs were found for one trajectory." << endl;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment