using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using bbiwarg.Recognition.FingerRecognition; using bbiwarg.Recognition.Tracking; using bbiwarg.Utility; using Emgu.CV; using Emgu.CV.Structure; namespace bbiwarg.Recognition.TouchRecognition { class TouchEvent : TrackableObject { public Vector2D Position { get; private set; } public Vector2D RelativePalmPosition { get; private set; } public Image TouchMask { get; private set; } public Finger Finger { get; private set; } public Quadrangle PalmQuad { get; private set; } public TouchEvent(Vector2D absolutePosition, Image touchMask, Finger finger, Quadrangle palmQuad) { Position = absolutePosition; RelativePalmPosition = palmQuad.getRelativePosition(absolutePosition); TouchMask = touchMask; Finger = finger; PalmQuad = palmQuad; } public float getTouchValue() { int touchPixels = TouchMask.CountNonzero()[0]; int numPixels = TouchMask.Width * TouchMask.Height; float touchValue = touchPixels / (float)numPixels; return touchValue; } } }