7 #ifndef TARGETS_FREELIST_HEADER
8 #define TARGETS_FREELIST_HEADER
10 #include "SingleTarget.h"
32 int InitializeTarget(
const Rect &target,
const Point2D &initVelocity);
44 inline void Resample() {
45 for (
auto &node : listNodes) {
48 node.target->ResampleWithBest();
52 inline bool GetTarget(
int index,
Rect &t)
const {
53 if (listNodes[index].isFree) {
57 t = listNodes[index].target->GetTarget();
61 inline int GetCapacity()
const {
73 const Pool<Rect> &dets, std::vector<MatchMatrix::MatchScore> &matchMat)
const;
81 std::vector<TargetsFreeListNode> listNodes;
85 const float detectionWeight;
87 const std::vector<int> &GetMatchDets() {
return matchDets; }
95 inline void DrawTargets(cv::Mat &img,
int index = -1)
const {
96 if (index < capacity && index >= 0 && !listNodes[index].isFree) {
97 listNodes[index].target->DrawTarget(img, listNodes[index].color);
100 for (
const auto &node : listNodes) {
102 node.target->DrawTarget(img, node.color);
107 inline void DrawParticles(cv::Mat &img,
int index = -1)
const {
110 cv::Scalar black(0.0f, 0.0f, 0.0f);
112 if (index < capacity && index >= 0 && !listNodes[index].isFree) {
113 listNodes[index].target->DrawParticles(img, black);
116 for (
const auto &node : listNodes) {
118 node.target->DrawParticles(img, black);
123 inline void DrawParticlesWithConfidence(cv::Mat &img,
int index = -1)
const {
124 if (index < capacity && index >= 0 && !listNodes[index].isFree) {
125 listNodes[index].target->DrawParticlesWithConfidence(img, listNodes[index].color);
128 for (
const auto &node : listNodes) {
130 node.target->DrawParticlesWithConfidence(img, node.color);
135 inline void DrawMatches(cv::Mat &img,
Pool<Rect> dets) {
136 for (
int i = 0; i < capacity; i++) {
137 if (!listNodes[i].isFree && matchDets[i] != -1) {
140 cv::rectangle(img, (cv::Rect)dets[matchDets[i]], listNodes[i].color, 2);
147 std::vector<int> matchDets;
Definition: TargetsFreeList.h:12
Definition: TargetsFreeList.h:22
void ResetOneTarget(int index)
Definition: TaregetsFreeList.cpp:30
void CalculateMatchScore(const IntegralImage *intImage, const Pool< Rect > &dets, std::vector< MatchMatrix::MatchScore > &matchMat) const
Definition: TaregetsFreeList.cpp:63
Definition: SingleTarget.h:36
Definition: Geometry.h:34
Definition: MultiSampler.h:18
void Observe(const IntegralImage *intImage, const Pool< Rect > &detections)
Definition: TaregetsFreeList.cpp:81
Definition: Geometry.h:14
void Train(const IntegralImage *intImage, const MultiSampler *multiSampler)
Definition: TaregetsFreeList.cpp:109
bool CheckNearbyTarget(const Rect &det, int distThre) const
Definition: TaregetsFreeList.cpp:123
void Propagate(const Size &imgSize)
Definition: TaregetsFreeList.cpp:73
Definition: IntegralImage.h:11
Definition: SingleSampler.h:13
Definition: Geometry.h:69