-
Notifications
You must be signed in to change notification settings - Fork 7
/
appTemplate.h
71 lines (54 loc) · 1.99 KB
/
appTemplate.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*************************************************************
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
***************************************************************/
#ifndef APP_TEMPLATE_H
#define APP_TEMPLATE_H
#include <list>
#include "opencv2/opencv.hpp"
#include "util.h"
#include "parameter.h"
#define BIN_NUMBER 32
static int hSize[]={BIN_NUMBER,BIN_NUMBER}; //2D histogram
/*
Appearance Template:
Each appearance template contains a 2D histogram, which is coded by
"int channel[2]", representing the selected channel, and "Mat hist", the
corresponding 2D histogram.
*/
class AppTemplate
{
public:
AppTemplate(const AppTemplate& tracker);
AppTemplate(const Mat* frame_set, const Rect iniWin, int ID);
// [frame in RGB,HSV,Lab] [initial detection window]
// calculate back-projection map
void calcBP(const Mat* frame_set, Mat& occ_map, Rect ROI);
// [occupancy map]
void calcScore(Rect b_inner,Rect b_outer);//all argument is relative to confidence_map roi
inline Mat& getConfidenceMap(){return confidence_map;}
inline Point2f getShiftVector(){return shift_vector;}
inline double getScore(){return score;}
inline int getID(){return ID;}
private:
const int ID;
int channels[2];
Mat hist;
float _hRang[2][2];
const float* hRange[2];
Mat confidence_map;
Point2f shift_vector;
double score;
};
#endif