Prechádzať zdrojové kódy

edgeImage thresholding to 0 and 1

Alexander Hendrich 11 rokov pred
rodič
commit
0991129335

+ 4 - 2
bbiwarg/Detectors/HandDetection/HandDetector.cs

@@ -13,18 +13,20 @@ namespace bbiwarg.Detectors.HandDetection
     class HandDetector
     {
         private DepthImage depthImage;
+        private EdgeImage edgeImage;
         private List<Finger> fingers;
         public List<Hand> Hands { get; private set; }
 
-        public HandDetector(DepthImage depthImage, List<Finger> fingers) {
+        public HandDetector(DepthImage depthImage, EdgeImage edgeImage, List<Finger> fingers) {
             this.depthImage = depthImage;
+            this.edgeImage = edgeImage;
             this.fingers = fingers;
 
             detectHands();
         }
 
         private void detectHands() {
-            Image<Gray, byte> image = depthImage.Image.Copy();
+            Image<Gray, byte> image = edgeImage.Image.Copy();
 
             //draw top finger slice
             foreach (Finger finger in fingers) {

+ 1 - 1
bbiwarg/Detectors/PalmDetection/PalmDetector.cs

@@ -168,7 +168,7 @@ namespace bbiwarg.Detectors.PalmDetection
             pointingHandMask = new Image<Gray, byte>(width, height, new Gray(0));
 
             // dst = (src > 0) ? 1 : 0;
-            pointingHandMask = pointingHandMask.Or(edgeImage.Image.ThresholdBinary(new Gray(0), new Gray(1)));
+            pointingHandMask = pointingHandMask.Or(edgeImage.Image);
             i1.Image[0] = i1.Image[1] = i1.Image[2] = 255 * pointingHandMask;
 
             pointingHandMask = pointingHandMask.Dilate(2);

+ 1 - 1
bbiwarg/Images/EdgeImage.cs

@@ -20,7 +20,7 @@ namespace bbiwarg.Images
 
         public EdgeImage(DepthImage depthImage)
         {
-            Image = (depthImage.Image * (255.0f / (float)(depthImage.MaxDepth - depthImage.MinDepth))).Canny(100, 75, 3);
+            Image = (depthImage.Image * (255.0f / (float)(depthImage.MaxDepth - depthImage.MinDepth))).Canny(100, 75, 3).ThresholdBinary(new Gray(0), new Gray(1));
         }
 
         public EdgeImage(Image<Gray, Byte> edgeImage)

+ 2 - 2
bbiwarg/VideoHandle.cs

@@ -151,7 +151,7 @@ namespace bbiwarg
             // create edge image
             Timer.start("createEdgeImage");
             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");
 
             //detect fingers
@@ -166,7 +166,7 @@ namespace bbiwarg
 
             //detect hands
             Timer.start("handDetection");
-            handDetector = new HandDetector(depthImage, fingerTracker.TrackedFingers);
+            handDetector = new HandDetector(depthImage, edgeImage, fingerTracker.TrackedFingers);
             Timer.stop("handDetection");
 
             //remove background noise