EdgeImage.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using Emgu.CV;
  8. using Emgu.CV.Structure;
  9. using bbiwarg.Detectors.Fingers;
  10. namespace bbiwarg.Images
  11. {
  12. class EdgeImage
  13. {
  14. public Image<Gray, Byte> Image { get; private set; }
  15. public EdgeImage(DepthImage depthImage)
  16. {
  17. Image = depthImage.Image.Canny(100, 75, 3);
  18. }
  19. public EdgeImage(Image<Gray, Byte> edgeImage)
  20. {
  21. Image = edgeImage;
  22. }
  23. public bool isEdgeAt(Point point)
  24. {
  25. return isEdgeAt(point.X, point.Y);
  26. }
  27. public bool isEdgeAt(int x, int y)
  28. {
  29. return (Image.Data[y, x, 0] > 0);
  30. }
  31. public void removeFingerEdges(Finger finger)
  32. {
  33. Point[] polygon = finger.getPolygon();
  34. Image.FillConvexPoly(polygon, new Gray(0));
  35. }
  36. public EdgeImage copy()
  37. {
  38. return new EdgeImage(Image.Copy());
  39. }
  40. }
  41. }