浏览代码

improved fingerdetection

Alexander Hendrich 11 年之前
父节点
当前提交
1fc42bf3a8

+ 3 - 2
bbiwarg/Detectors/Fingers/Finger.cs

@@ -16,7 +16,7 @@ namespace bbiwarg.Detectors.Fingers
         private FingerSliceTrail sliceTrail;
         public Vector2D Tip { get { return sliceTrail.Start.Mid; } }
         public Vector2D Hand { get { return sliceTrail.End.Mid; } }
-        public Line2D Line { get {return sliceTrail.Line;}}
+        public Line2D Line { get { return sliceTrail.Line; } }
         public FingerSliceTrail SliceTrail { get { return sliceTrail; } private set { sliceTrail = value; } }
 
         public Finger(FingerSliceTrail sliceTrail)
@@ -24,7 +24,8 @@ namespace bbiwarg.Detectors.Fingers
             SliceTrail = sliceTrail;
         }
 
-        public float getSimilarity(Finger compareFinger) {
+        public float getSimilarity(Finger compareFinger)
+        {
             Line2D compareLine = compareFinger.Line;
 
             //thresholds

+ 3 - 3
bbiwarg/Detectors/Fingers/FingerDetector.cs

@@ -128,7 +128,7 @@ namespace bbiwarg.Detectors.Fingers
 
         private void transformFingerSliceTrailsToFingers()
         {
-            int minNumSlices = 20;
+            int minNumSlices = 15;
 
             Fingers = new List<Finger>();
             List<FingerSliceTrail> fingerSliceTrails = new List<FingerSliceTrail>();
@@ -197,8 +197,8 @@ namespace bbiwarg.Detectors.Fingers
 
         private void addVerticalFingerSlice(FingerSlice slice)
         {
-            int maxXGap = 4;
-            int maxYDifference = 4;
+            int maxXGap = 5;
+            int maxYDifference = 5;
 
             bool assigned = false;
             foreach (FingerSliceTrail trail in verticalFingerSliceTrails)

+ 1 - 1
bbiwarg/Detectors/Touch/TouchDetector.cs

@@ -53,7 +53,7 @@ namespace bbiwarg.Detectors.Touch
         private float getFloodValue(int touchX, int touchY) {
             int searchSize = 15;
             int maxDepthDifference = 20;
-            Int16 fingerDiameter = 7;
+            Int16 fingerDiameter = 5;
             Int16 depthAtTouch = (Int16) (depthImage.getDepthAt(touchX, touchY) + fingerDiameter);
 
             int minX = Math.Max(touchX - searchSize, 0);

+ 1 - 1
bbiwarg/MainBBWIWARG.cs

@@ -12,7 +12,7 @@ namespace bbiwarg
     {
         static void Main(string[] args)
         {
-            IInputProvider inputProvider = new IisuInputProvider("..\\..\\videos\\touch\\4.skv");
+            IInputProvider inputProvider = new IisuInputProvider();//"..\\..\\videos\\touch\\4.skv");
             VideoHandle videoHandle = new VideoHandle(inputProvider);
             videoHandle.start();