#pragma once #include "opencv2/core.hpp" #include /* Author: Nicoḷ Castellazzi https://github.com/nicast */ namespace computervision { using namespace cv; using namespace std; class FingerCount { public: FingerCount(void); Mat findFingersCount(Mat input_image, Mat frame); private: Scalar color_blue; Scalar color_green; Scalar color_red; Scalar color_black; Scalar color_white; Scalar color_yellow; Scalar color_purple; double findPointsDistance(Point a, Point b); vector compactOnNeighborhoodMedian(vector points, double max_neighbor_distance); double findAngle(Point a, Point b, Point c); bool isFinger(Point a, Point b, Point c, double limit_angle_inf, double limit_angle_sup, cv::Point palm_center, double distance_from_palm_tollerance); vector findClosestOnX(vector points, Point pivot); double findPointsDistanceOnX(Point a, Point b); void drawVectorPoints(Mat image, vector points, Scalar color, bool with_numbers); }; }