Browse Source

-set fingerStepSize to 1 (tip is more stable now)
-fixed bug in palmDetector (wristUpper wasn't detected properly if !isInSide(thumbDefect.Inner))

Alexander Hendrich 11 years ago
parent
commit
7b20abd875

+ 2 - 2
bbiwarg/Parameters.cs

@@ -62,13 +62,13 @@ namespace bbiwarg
         public static readonly int EdgeImageRoughNumDilationIterations = 1;
 
         // finger detection
-        public static readonly int FingerStepSize = 2;
+        public static readonly int FingerStepSize = 1;
         public static readonly int FingerMaxGapCounter = 5;
         public static readonly int FingerMaxSliceDifferencePerStep = 5;
         public static readonly int FingerMinNumSlices = 25 / FingerStepSize;
         public static readonly int FingerMaxWidth = 30;
         public static readonly int FingerMinWidth = 2;
-        public static readonly int FingerRemoveNumSlicesForCorrection = 5;
+        public static readonly int FingerRemoveNumSlicesForCorrection = 10 / FingerStepSize;
         public static readonly int FingerNumSlicesForRelativeDirection = FingerRemoveNumSlicesForCorrection;
         public static readonly int FingerOutMargin = 8;
         public static readonly int FingerCrippleMinDifference = 20;

+ 2 - 1
bbiwarg/Recognition/HandRecognition/HandDetector.cs

@@ -45,8 +45,9 @@ namespace bbiwarg.Recognition.HandRecognition
 
             foreach (Finger finger in fingers)
             {
+                Int16 depthAtHand = depthImage.getDepthAt(finger.HandPoint);
                 Point[] contour = finger.InnerContour.ToArray();
-                modifiedHandDepthImage.DrawPolyline(contour, false, new Gray(0), 2);
+                modifiedHandDepthImage.DrawPolyline(contour, false, new Gray(depthAtHand), 2);
             }
         }
 

+ 1 - 1
bbiwarg/Recognition/PalmRecognition/PalmDetector.cs

@@ -77,7 +77,7 @@ namespace bbiwarg.Recognition.PalmRecognition
                 }
 
                 //wristUpper
-                Vector2D wristUpper = thumbDefect.Inner;
+                Vector2D wristUpper = thumbDefect.Inner + 5*directionFingerWrist;
                 while (wristUpper.isInBound() && palmHand.isInside(wristUpper))
                     wristUpper += directionFingerWrist;