Переглянути джерело

-fixed bug (contour was cut off due to wrong direction of fingerslices)
-set renderFrameRate to 30

Alexander Hendrich 10 роки тому
батько
коміт
e3d314317e

+ 1 - 1
bbiwarg/Constants.cs

@@ -12,7 +12,7 @@ namespace bbiwarg
     class Constants
     {
         // Logger
-        public static readonly LogSubject LogLevel = LogSubject.Timer;
+        public static readonly LogSubject LogLevel = LogSubject.None;
         public static readonly int ConsoleWidth = 90;
         public static readonly int ConsoleHeight = 30;
 

+ 1 - 1
bbiwarg/MainBBWIWARG.cs

@@ -28,7 +28,7 @@ namespace bbiwarg
             if (Constants.OutputEnabled)
             {
                 OutputWindow outputWindow = new OutputWindow(inputProvider, inputHandler);
-                outputWindow.Run(Constants.OutputFrameRate);
+                outputWindow.Run(Constants.OutputFrameRate, Constants.OutputFrameRate);
             }
             else
             {

+ 4 - 3
bbiwarg/Recognition/FingerRecognition/FingerDetector.cs

@@ -96,7 +96,7 @@ namespace bbiwarg.Recognition.FingerRecognition
                     {
                         trail.removeFirstSlices(Constants.FingerRemoveNumSlicesForCorrection);
                         trail.reverse();
-                        trail = expandTrail(trail);
+                        trail = expandTrail(trail, true);
                         trail.reverse();
                         return trail;
                     }
@@ -107,7 +107,7 @@ namespace bbiwarg.Recognition.FingerRecognition
 
         }
 
-        private FingerSliceTrail expandTrail(FingerSliceTrail trail)
+        private FingerSliceTrail expandTrail(FingerSliceTrail trail, bool reversed = false)
         {
             Vector2D currentDirection = trail.getEndDirection();
             Vector2D currentPosition = trail.EndSlice.Mid + Constants.FingerStepSize * currentDirection;
@@ -120,7 +120,8 @@ namespace bbiwarg.Recognition.FingerRecognition
 
             while (currentPosition.isInBound(Vector2D.Zero, depthImage.BottomRight) && gapCounter <= Math.Min(numSlices, Constants.FingerMaxGapCounter))
             {
-                nextSlice = findFingerSliceFromMid(currentPosition, currentDirection);
+                Vector2D direction = (reversed) ? currentDirection.getInverse() : currentDirection;
+                nextSlice = findFingerSliceFromMid(currentPosition, direction);
 
                 if (nextSlice != null && Math.Abs(nextSlice.Length - lastSlice.Length) <= Constants.FingerMaxSliceDifferencePerStep)
                 {