/
main.cpp
78 lines (68 loc) · 2.06 KB
/
main.cpp
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
#include "MouseDetector.h"
#include <time.h>
cv::Mat image;
MouseDetector MouseGlove;
cv::Point mouseCoordinates;
cv::VideoCapture camera(0);
bool leftClickStatus;
bool rightClickStatus;
clock_t t;
float getTime() {
return float(clock() - t)/CLOCKS_PER_SEC;
}
void resetTimer() {
t = clock();
}
void toggleLeftClick() {
leftClickStatus = MouseGlove.getLeftClickStatus();
if (leftClickStatus == true) MouseGlove.leftClickDown(mouseCoordinates);
else MouseGlove.leftClickUp(mouseCoordinates);
resetTimer();
}
void toggleRightClick() {
rightClickStatus = MouseGlove.getRightClickStatus();
if (rightClickStatus == true) MouseGlove.rightClickDown(mouseCoordinates);
else MouseGlove.rightClickUp(mouseCoordinates);
resetTimer();
}
int main() {
if (!camera.isOpened()) return 1;
int keyCheck = 0;
resetTimer();
MouseGlove.setCenterHSV(104,238,203);
MouseGlove.setLeftHSV(150,150,232);
MouseGlove.setRightHSV(15,205,246);
MouseGlove.setScrollHSV(63,144,204);
MouseGlove.setCenterColorThreshold(50);
MouseGlove.setLeftColorThreshold(35);
MouseGlove.setRightColorThreshold(25);
MouseGlove.setScrollColorThreshold(30);
MouseGlove.setScrollAnchorYCoordinate(240);
MouseGlove.setMinArea(100);
leftClickStatus = false;
rightClickStatus = false;
while(cv::waitKey(10) != 13) {
if (!camera.read(image)) return 1;
cv::flip(image,image,1);
MouseGlove.processCenterMarker(image);
MouseGlove.processLeftMarker(image);
MouseGlove.processRightMarker(image);
MouseGlove.processScrollMarker(image);
if (getTime() > 0.3) {
mouseCoordinates = MouseGlove.getCenterMarkerCoordinates();
MouseGlove.calibrateCoordinates(mouseCoordinates);
}
if (MouseGlove.mouseDetected()) {
MouseGlove.moveMouse(mouseCoordinates);
}
if (MouseGlove.getLeftClickStatus() != leftClickStatus)
toggleLeftClick();
if (MouseGlove.getRightClickStatus() != rightClickStatus)
toggleRightClick();
if (MouseGlove.scrollDetected()) {
MouseGlove.scroll(mouseCoordinates,MouseGlove.getScrollSpeed());
}
MouseGlove.displayMouseStatus(image);
cv::imshow("Mouse Glove",image);
}
}