diff --git a/modules/contrib/include/opencv2/contrib/detection_based_tracker.hpp b/modules/contrib/include/opencv2/contrib/detection_based_tracker.hpp index 18129cea2..da396ead2 100644 --- a/modules/contrib/include/opencv2/contrib/detection_based_tracker.hpp +++ b/modules/contrib/include/opencv2/contrib/detection_based_tracker.hpp @@ -83,14 +83,14 @@ class DetectionBasedTracker virtual void process(const cv::Mat& imageGray); bool setParameters(const Parameters& params); - const Parameters& getParameters(); + const Parameters& getParameters() const; typedef std::pair Object; virtual void getObjects(std::vector& result) const; virtual void getObjects(std::vector& result) const; - virtual void addObject(const cv::Rect& location); + virtual int addObject(const cv::Rect& location); //returns id of the new object protected: class SeparateDetectionWork; diff --git a/modules/contrib/src/detection_based_tracker.cpp b/modules/contrib/src/detection_based_tracker.cpp index c4e6e4067..bb7f4e9d4 100644 --- a/modules/contrib/src/detection_based_tracker.cpp +++ b/modules/contrib/src/detection_based_tracker.cpp @@ -706,10 +706,13 @@ void cv::DetectionBasedTracker::updateTrackedObjects(const vector& detecte } } -void cv::DetectionBasedTracker::addObject(const Rect& location) +int cv::DetectionBasedTracker::addObject(const Rect& location) { LOGD("DetectionBasedTracker::addObject: new object {%d, %d %dx%d}",location.x, location.y, location.width, location.height); - trackedObjects.push_back(location); + trackedObjects.push_back(TrackedObject(location)); + int newId = trackedObjects.back().id; + LOGD("DetectionBasedTracker::addObject: newId = %d", newId); + return newId; } Rect cv::DetectionBasedTracker::calcTrackedObjectPositionToShow(int i) const @@ -847,7 +850,7 @@ bool cv::DetectionBasedTracker::setParameters(const Parameters& params) return true; } -const cv::DetectionBasedTracker::Parameters& DetectionBasedTracker::getParameters() +const cv::DetectionBasedTracker::Parameters& DetectionBasedTracker::getParameters() const { return parameters; }