12345678910111213141516171819202122232425262728293031323334353637383940 |
- 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<Gray, byte> TouchMask { get; private set; }
- public Finger Finger { get; private set; }
- public Quadrangle PalmQuad { get; private set; }
- public TouchEvent(Vector2D absolutePosition, Image<Gray, byte> 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;
- }
- }
- }
|