forked from opengazer/OpenGazer
-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathAnchorPointSelector.h
31 lines (26 loc) · 1.19 KB
/
AnchorPointSelector.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
#pragma once
#include "Point.h"
#include "Component.h"
#include "PointTracker.h"
#include <opencv2/objdetect/objdetect.hpp>
class AnchorPointSelector: public Component {
cv::CascadeClassifier faceCascade;
cv::CascadeClassifier eyeCascade;
cv::CascadeClassifier noseCascade;
cv::CascadeClassifier mouthCascade;
PointTracker* _pointTracker;
void choosePoints();
void loadCascades();
bool detectLargestObject(cv::CascadeClassifier cascade, cv::Mat image, cv::Rect &largestObject, double scaleFactor = 1.1, int minNeighbors = 3, int flags = 0, cv::Size minSize = cv::Size());
bool detectNose(cv::Mat image, double resolution, cv::Rect noseRect, cv::Point2f points[]);
bool detectMouth(cv::Mat image, double resolution, cv::Rect mouthRect, cv::Point2f points[]);
bool detectEyeCorners(cv::Mat image, double resolution, cv::Point2f points[]);
void detectEyebrowCorners(cv::Mat image, double resolution, cv::Rect eyebrowRect, cv::Point2f points[]);
std::vector<cv::Point2f>* detectCornersInGrayscale(cv::Mat eyeRegionImageGray, int cornerCount);
void checkRectSize(const cv::Mat &image, cv::Rect *rect);
public:
AnchorPointSelector();
~AnchorPointSelector(void);
void process();
void draw();
};