PalmTracker.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  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.Input.InputHandling;
  8. namespace bbiwarg.Recognition.PalmRecognition
  9. {
  10. class PalmTracker : Tracker<Palm, TrackedPalm>
  11. {
  12. public void trackPalms(FrameData frameData) {
  13. trackObjects(frameData.DetectedPalms);
  14. frameData.TrackedPalms = getOptimizedPalms();
  15. }
  16. protected override TrackedPalm createTrackedObject(Palm detectedPalm)
  17. {
  18. return new TrackedPalm(idPool.getNextUnusedID(), detectedPalm, Parameters.PalmTrackerNumFramesDetectedUntilTracked, Parameters.PalmTrackerNumFramesLostUntilDeleted);
  19. }
  20. private List<Palm> getOptimizedPalms()
  21. {
  22. List<Palm> optimizedPalms = new List<Palm>();
  23. foreach (TrackedPalm tp in TrackedObjects)
  24. {
  25. if (tp.CurrentState == TrackingState.Tracked)
  26. optimizedPalms.Add(tp.OptimizedPalm);
  27. }
  28. return optimizedPalms;
  29. }
  30. }
  31. }