using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Emgu.CV; using Emgu.CV.Structure; using bbiwarg.Recognition.FingerRecognition; using bbiwarg.Utility; namespace bbiwarg.Recognition.HandRecognition { class Hand { public enum HandSide { Left, Right } public Vector2D Centroid { private set; get; } public HandSide Side { get; set; } public Image Mask { get; private set; } public List Fingers { get; private set; } public Hand(Image mask) { Mask = mask; Centroid = getCentroid(); Fingers = new List(); } public bool isInside(Vector2D point) { return (Mask.Data[point.IntY, point.IntX, 0] != 0); } public void addFinger(Finger finger) { Fingers.Add(finger); } private Vector2D getCentroid() { MCvPoint2D64f gravityCenter = Mask.GetMoments(true).GravityCenter; return new Vector2D((float)gravityCenter.x, (float)gravityCenter.y); } } }