44#ifndef OPENCV_OBJDETECT_DBT_HPP
45#define OPENCV_OBJDETECT_DBT_HPP
47#include <opencv2/core.hpp>
63 int minDetectionPeriod;
73 maxObjSize(INT_MAX, INT_MAX),
78 virtual void detect(
const cv::Mat& image, std::vector<cv::Rect>& objects) = 0;
96 float getScaleFactor()
100 void setScaleFactor(
float value)
104 int getMinNeighbours()
106 return minNeighbours;
108 void setMinNeighbours(
int value)
110 minNeighbours = value;
126 virtual void resetTracking();
128 virtual void process(
const cv::Mat& imageGray);
134 typedef std::pair<cv::Rect, int> Object;
135 virtual void getObjects(std::vector<cv::Rect>& result)
const;
136 virtual void getObjects(std::vector<Object>& result)
const;
140 DETECTED_NOT_SHOWN_YET,
142 DETECTED_TEMPORARY_LOST,
151 :id(_id), location(_location), status(_status)
155 virtual void getObjects(std::vector<ExtObject>& result)
const;
158 virtual int addObject(
const cv::Rect& location);
161 class SeparateDetectionWork;
163 friend void* workcycleObjectDetectorFunction(
void* p);
167 int numLastPositionsToTrack;
168 int numStepsToWaitBeforeFirstShow;
169 int numStepsToTrackWithoutDetectingIfObjectHasNotBeenShown;
170 int numStepsToShowWithoutDetecting;
172 float coeffTrackingWindowSize;
173 float coeffObjectSizeToTrack;
174 float coeffObjectSpeedUsingInPrediction;
183 typedef std::vector<cv::Rect> PositionsVector;
185 PositionsVector lastPositions;
187 int numDetectedFrames;
188 int numFramesNotDetected;
193 lastPositions.push_back(rect);
197 static int getNextId()
205 std::vector<TrackedObject> trackedObjects;
207 std::vector<float> weightsPositionsSmoothing;
208 std::vector<float> weightsSizesSmoothing;
212 void updateTrackedObjects(
const std::vector<cv::Rect>& detectedObjects);
213 cv::Rect calcTrackedObjectPositionToShow(
int i)
const;
214 cv::Rect calcTrackedObjectPositionToShow(
int i, ObjectStatus& status)
const;
215 void detectInRegion(
const cv::Mat& img,
const cv::Rect& r, std::vector<cv::Rect>& detectedObjectsInRegions);
Definition: detection_based_tracker.hpp:69
Definition: detection_based_tracker.hpp:58
n-dimensional dense array class
Definition: mat.hpp:802
Template class for 2D rectangles
Definition: core/types.hpp:421
Template class for specifying the size of an image or rectangle.
Definition: core/types.hpp:316
CV_EXPORTS_W void max(InputArray src1, InputArray src2, OutputArray dst)
Calculates per-element maximum of two arrays or an array and a scalar.
CV_EXPORTS_W void min(InputArray src1, InputArray src2, OutputArray dst)
Calculates per-element minimum of two arrays or an array and a scalar.
"black box" representation of the file storage associated with a file on disk.
Definition: aruco.hpp:75
Definition: detection_based_tracker.hpp:146
Definition: detection_based_tracker.hpp:166
Definition: detection_based_tracker.hpp:61
Definition: detection_based_tracker.hpp:182
Definition: cvstd_wrapper.hpp:74