-
Notifications
You must be signed in to change notification settings - Fork 0
/
mappinglabel.h
117 lines (64 loc) · 2.03 KB
/
mappinglabel.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#ifndef MAPPINGLABEL_H
#define MAPPINGLABEL_H
#include <QWidget>
#include <QMouseEvent>
#include <QLabel>
#include <QDebug>
#include <QString>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/imgproc.hpp>
namespace Ui {
class MappingLabel;
}
class MappingLabel : public QLabel
{
Q_OBJECT
public:
explicit MappingLabel(QWidget *parent = nullptr);
~MappingLabel();
void setWidth(float width);
void setHeight(float height);
void setIsFootball(bool isFootball);
void setEnabledClick(bool status);
void setBackgroundImage(cv::Mat image);
void setIsCustom(bool isCustom);
void setPointScaleFactor(float scaleFactor);
bool getEnabledClick();
float getWidth();
float getHeight();
bool getIsFootball();
bool getIsCustom();
float getPointScaleFactor();
cv::Point2f getMappingPoint();
void displayBackgroundImage(cv::Mat inputImage);
void resetMappingPoint();
void setInputMappingPoints(std::vector<cv::Point2f> input);
void loadFromQrc(QString qrc, bool firstLoad = false, int flag = cv::IMREAD_COLOR );
void displayPoints(std::vector<cv::Point2f> pairedMappingPoints = std::vector<cv::Point2f>(), bool isSet = false);
protected:
void mousePressEvent(QMouseEvent*e);
void storeFootballPoint();
cv::Point2f findCorrectPoint(cv::Point2f point, std::vector<cv::Point2f> vector);
signals:
void signalActivateImageClick();
void signalMappingPoint();
void signalClearMappingPont();
private:
Ui::MappingLabel *ui;
cv::Mat m_backgroundImage;
QPixmap m_newPixmap;
float m_aspectRationImage;
float m_aspectRationLabel;
float m_scaleFactor;
float m_width = 0.0f;
float m_height = 0.0f;
cv::Point2f m_mappingPoint;
bool m_enabledClick = true;
bool m_isFootball = false;
bool m_isCustom = false;
std::vector<cv::Point2f> m_footballPoints;
std::vector<cv::Point2f> m_inputMappingPoints;
float m_pointScaleFactor = 0.0f;
};
#endif // MAPPINGLABEL_H