|
@@ -6,9 +6,10 @@ using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Threading.Tasks;
|
|
using System.Diagnostics;
|
|
using System.Diagnostics;
|
|
using bbiwarg.Utility;
|
|
using bbiwarg.Utility;
|
|
-using bbiwarg.Detectors.Fingers;
|
|
|
|
-using bbiwarg.Detectors.Palm;
|
|
|
|
-using bbiwarg.Detectors.Touch;
|
|
|
|
|
|
+using bbiwarg.Detectors.FingerDetection;
|
|
|
|
+using bbiwarg.Detectors.PalmDetection;
|
|
|
|
+using bbiwarg.Detectors.TouchDetection;
|
|
|
|
+using bbiwarg.Detectors.HandDetection;
|
|
using bbiwarg.Images;
|
|
using bbiwarg.Images;
|
|
using bbiwarg.InputProviders;
|
|
using bbiwarg.InputProviders;
|
|
using Emgu.CV;
|
|
using Emgu.CV;
|
|
@@ -42,6 +43,7 @@ namespace bbiwarg
|
|
private EdgeImage edgeImage;
|
|
private EdgeImage edgeImage;
|
|
|
|
|
|
private FingerDetector fingerDetector;
|
|
private FingerDetector fingerDetector;
|
|
|
|
+ private HandDetector handDetector;
|
|
private PalmDetector palmDetector;
|
|
private PalmDetector palmDetector;
|
|
private TouchDetector touchDetector;
|
|
private TouchDetector touchDetector;
|
|
private PalmTouchDetector palmTouchDetector;
|
|
private PalmTouchDetector palmTouchDetector;
|
|
@@ -149,7 +151,7 @@ namespace bbiwarg
|
|
// create edge image
|
|
// create edge image
|
|
Timer.start("createEdgeImage");
|
|
Timer.start("createEdgeImage");
|
|
edgeImage = new EdgeImage(depthImage);
|
|
edgeImage = new EdgeImage(depthImage);
|
|
- OutputImages[1].Image[2] = edgeImage.Image.ThresholdBinary(new Gray(0), new Gray(1)).Mul(255);
|
|
|
|
|
|
+ OutputImages[1].Image[2] = edgeImage.Image.Mul(255);
|
|
Timer.stop("createEdgeImage");
|
|
Timer.stop("createEdgeImage");
|
|
|
|
|
|
//detect fingers
|
|
//detect fingers
|
|
@@ -162,6 +164,11 @@ namespace bbiwarg
|
|
fingerTracker.setDetectedTouchEventsThisFrame(fingerDetector.Fingers, OutputImages[1]);
|
|
fingerTracker.setDetectedTouchEventsThisFrame(fingerDetector.Fingers, OutputImages[1]);
|
|
Timer.stop("fingerTracking");
|
|
Timer.stop("fingerTracking");
|
|
|
|
|
|
|
|
+ //detect hands
|
|
|
|
+ Timer.start("handDetection");
|
|
|
|
+ handDetector = new HandDetector(depthImage, edgeImage, fingerTracker.TrackedFingers);
|
|
|
|
+ Timer.stop("handDetection");
|
|
|
|
+
|
|
//remove background noise
|
|
//remove background noise
|
|
Timer.start("removeBackground");
|
|
Timer.start("removeBackground");
|
|
depthImage.removeBackground(fingerDetector.Fingers);
|
|
depthImage.removeBackground(fingerDetector.Fingers);
|
|
@@ -210,8 +217,9 @@ namespace bbiwarg
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- OutputImages = new OutputImage[] {OutputImages[0], OutputImages[1], OutputImages[2], palmDetector.i1, palmDetector.i2,
|
|
|
|
- palmDetector.i3, palmDetector.i5, palmDetector.i6, palmDetector.i7, palmDetector.i8, palmDetector.i9};
|
|
|
|
|
|
+ OutputImages = new OutputImage[] {OutputImages[0], OutputImages[1], OutputImages[2], OutputImages[3]};
|
|
|
|
+
|
|
|
|
+ //palmDetector.i1, palmDetector.i2, palmDetector.i3, palmDetector.i5, palmDetector.i6, palmDetector.i7, palmDetector.i8, palmDetector.i9};
|
|
|
|
|
|
Timer.stop("processFrameUpdate");
|
|
Timer.stop("processFrameUpdate");
|
|
}
|
|
}
|