From 245cbaee15bb84f0bc404eec308d96a8b4a42b73 Mon Sep 17 00:00:00 2001 From: prat96 Date: Tue, 13 Oct 2020 18:52:33 +0200 Subject: [PATCH 1/2] Clean init maxDistance param --- include/centroidtracker.h | 4 ++-- src/centroidtracker.cpp | 3 ++- src/main.cpp | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/centroidtracker.h b/include/centroidtracker.h index 4621606..40dc18a 100644 --- a/include/centroidtracker.h +++ b/include/centroidtracker.h @@ -16,7 +16,7 @@ Created by pratheek on 2019-11-27. class CentroidTracker { public: - explicit CentroidTracker(int maxDisappeared); + explicit CentroidTracker(int maxDisappeared, int maxDistance); void register_Object(int cX, int cY); @@ -29,7 +29,7 @@ class CentroidTracker { std::map>> path_keeper; private: int maxDisappeared; - + int maxDistance; int nextObjectID; static double calcDistance(double x1, double y1, double x2, double y2); diff --git a/src/centroidtracker.cpp b/src/centroidtracker.cpp index 1b1c2aa..91687fb 100644 --- a/src/centroidtracker.cpp +++ b/src/centroidtracker.cpp @@ -6,9 +6,10 @@ Created by pratheek on 2019-11-27. using namespace std; -CentroidTracker::CentroidTracker(int maxDisappeared) { +CentroidTracker::CentroidTracker(int maxDisappeared, int maxDistance) { this->nextObjectID = 0; this->maxDisappeared = maxDisappeared; + this->maxDistance = maxDistance; } double CentroidTracker::calcDistance(double x1, double y1, double x2, double y2) { diff --git a/src/main.cpp b/src/main.cpp index d514d8d..c82b0da 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -9,7 +9,7 @@ using namespace std; int main() { std::cout << "Hello, Tracker!" << std::endl; - auto centroidTracker = new CentroidTracker(20); + auto centroidTracker = new CentroidTracker(20, 50); VideoCapture cap(0); // VideoCapture cap("../../test2.mp4"); From a42e36fb6b3f5eac97029fb07aeb113d00713d92 Mon Sep 17 00:00:00 2001 From: prat96 Date: Tue, 13 Oct 2020 19:43:13 +0200 Subject: [PATCH 2/2] Add maxDistance logic --- src/centroidtracker.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/centroidtracker.cpp b/src/centroidtracker.cpp index 91687fb..f64a066 100644 --- a/src/centroidtracker.cpp +++ b/src/centroidtracker.cpp @@ -132,6 +132,10 @@ std::vector>> CentroidTracker::update(vector< for (int i = 0; i < rows.size(); i++) { //if we have already examined either the row or column value before, ignore it if (usedRows.count(rows[i]) || usedCols.count(cols[i])) { continue; } + + // Added maxDistance logic here + if (Distances[rows[i]][cols[i]] > this->maxDistance) { continue; } + //otherwise, grab the object ID for the current row, set its new centroid, // and reset the disappeared counter int objectID = objectIDs[rows[i]];