HandDetector.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using bbiwarg.Images;
  7. using bbiwarg.Detectors.FingerDetection;
  8. using Emgu.CV;
  9. using Emgu.CV.Structure;
  10. namespace bbiwarg.Detectors.HandDetection
  11. {
  12. class HandDetector
  13. {
  14. private DepthImage depthImage;
  15. private List<Finger> fingers;
  16. public List<Hand> Hands { get; private set; }
  17. public HandDetector(DepthImage depthImage, List<Finger> fingers) {
  18. this.depthImage = depthImage;
  19. this.fingers = fingers;
  20. detectHands();
  21. }
  22. private void detectHands() {
  23. Image<Gray, byte> image = depthImage.Image.Copy();
  24. //draw top finger slice
  25. foreach (Finger finger in fingers) {
  26. FingerSlice topSlice = finger.SliceTrail.Start;
  27. image.Draw(new LineSegment2D(topSlice.Start, topSlice.End), new Gray(255), 2);
  28. }
  29. int numHands = 0;
  30. foreach (Finger finger in fingers) {
  31. }
  32. }
  33. }
  34. }