-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathclassifierinterface.h
More file actions
50 lines (45 loc) · 1.19 KB
/
classifierinterface.h
File metadata and controls
50 lines (45 loc) · 1.19 KB
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
#ifndef CLASSIFIERINTERFACE_H
#define CLASSIFIERINTERFACE_H
#include <iostream>
#include <cv.h>
#include <ml.h>
#include <vector>
#include <QString>
enum CLSF_IDX {
CLSF_IDX_NBC,
CLSF_IDX_KNN,
CLSF_IDX_SVM,
CLSF_IDX_DT,
CLSF_IDX_BT,
CLSF_IDX_GBT,
CLSF_IDX_RF,
CLSF_IDX_ERT,
CLSF_IDX_ANN,
CLSF_IDX_EM,
CLSF_IDX_EMC,
//
CLSF_IDX_NUM
};
class ClassifierInterface
{
public:
ClassifierInterface();
virtual ~ClassifierInterface() {}
//
virtual void trainData(const std::vector<cv::Point>& data, const std::vector<int>& labels) = 0;
// virtual int classify(const cv::Point& p) = 0;
virtual int classify(int x, int y) = 0;
virtual QString toQString() const = 0;
virtual int getMaxClassNum() { return INT_MAX; }
virtual void loadAdditionalPoints(std::vector<cv::Point>& extPoints) { extPoints.clear(); } // for support vectors
//
bool isTrained();
float calcSelfError();
protected:
cv::Mat pData;
cv::Mat lData;
cv::Mat testSample;
bool isTrainedFlag;
void loadData(const std::vector<cv::Point>& data, const std::vector<int>& labels);
};
#endif // CLASSIFIERINTERFACE_H