FingerTracker.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using bbiwarg.Recognition.Tracking;
  7. using bbiwarg.Utility;
  8. namespace bbiwarg.Recognition.FingerRecognition
  9. {
  10. class FingerTracker : Tracker<Finger>
  11. {
  12. public List<Finger> Fingers { get { return TrackedObjects; } }
  13. public FingerTracker()
  14. : base(Constants.FingerNumFramesDetectedUntilTracked, Constants.FingerNumFramesLostUntilDeleted, Constants.FingerMinSimilarityForTracking)
  15. {
  16. }
  17. protected override void onStateChanged(object sender, TrackingStateChangeEventArgs e)
  18. {
  19. TrackableObjectHistory<Finger> history = (TrackableObjectHistory<Finger>)sender;
  20. //log
  21. if (history.NumFramesInCurrentState == 1)
  22. {
  23. switch (e.NextState)
  24. {
  25. case TrackingState.Detected:
  26. Logger.log("Finger #" + history.ID.ToString() + " detected", LogSubject.FingerTracker);
  27. break;
  28. case TrackingState.Tracked:
  29. Logger.log("Finger #" + history.ID.ToString() + " tracked", LogSubject.FingerTracker);
  30. break;
  31. case TrackingState.Lost:
  32. Logger.log("Finger #" + history.ID.ToString() + " lost", LogSubject.FingerTracker);
  33. break;
  34. case TrackingState.Delete:
  35. Logger.log("Finger #" + history.ID.ToString() + " deleted", LogSubject.FingerTracker);
  36. break;
  37. }
  38. }
  39. }
  40. }
  41. }