Prechádzať zdrojové kódy

renamed detector namespaces

Alexander Hendrich 10 rokov pred
rodič
commit
12080d5afe

+ 2 - 2
bbiwarg/Detectors/Fingers/Finger.cs → bbiwarg/Detectors/FingerDetection/Finger.cs

@@ -7,7 +7,7 @@ using System.Threading.Tasks;
 using bbiwarg.Images;
 using bbiwarg.Utility;
 
-namespace bbiwarg.Detectors.Fingers
+namespace bbiwarg.Detectors.FingerDetection
 {
     class Finger
     {
@@ -20,7 +20,7 @@ namespace bbiwarg.Detectors.Fingers
         {
             //check direction
             if (sliceTrail.Start.Length > sliceTrail.End.Length)
-                ;// sliceTrail.Slices.Reverse();
+                sliceTrail.Slices.Reverse();
 
             SliceTrail = sliceTrail;
         }

+ 1 - 1
bbiwarg/Detectors/Fingers/FingerDetector.cs → bbiwarg/Detectors/FingerDetection/FingerDetector.cs

@@ -11,7 +11,7 @@ using Emgu.CV.Structure;
 using Emgu.CV;
 using bbiwarg.Graphics;
 
-namespace bbiwarg.Detectors.Fingers
+namespace bbiwarg.Detectors.FingerDetection
 {
     class FingerDetector
     {

+ 1 - 1
bbiwarg/Detectors/Fingers/FingerSlice.cs → bbiwarg/Detectors/FingerDetection/FingerSlice.cs

@@ -5,7 +5,7 @@ using System.Text;
 using System.Threading.Tasks;
 using bbiwarg.Utility;
 
-namespace bbiwarg.Detectors.Fingers
+namespace bbiwarg.Detectors.FingerDetection
 {
     class FingerSlice
     {

+ 1 - 1
bbiwarg/Detectors/Fingers/FingerSliceTrail.cs → bbiwarg/Detectors/FingerDetection/FingerSliceTrail.cs

@@ -5,7 +5,7 @@ using System.Text;
 using System.Threading.Tasks;
 using bbiwarg.Utility;
 
-namespace bbiwarg.Detectors.Fingers
+namespace bbiwarg.Detectors.FingerDetection
 {
     class FingerSliceTrail
     {

+ 1 - 1
bbiwarg/Detectors/Fingers/FingerTracker.cs → bbiwarg/Detectors/FingerDetection/FingerTracker.cs

@@ -7,7 +7,7 @@ using System.Threading.Tasks;
 using bbiwarg.Images;
 using bbiwarg.Graphics;
 
-namespace bbiwarg.Detectors.Fingers
+namespace bbiwarg.Detectors.FingerDetection
 {
     class FingerTracker
     {

+ 12 - 0
bbiwarg/Detectors/HandDetection/Hand.cs

@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace bbiwarg.Detectors.HandDetection
+{
+    class Hand
+    {
+    }
+}

+ 42 - 0
bbiwarg/Detectors/HandDetection/HandDetector.cs

@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using bbiwarg.Images;
+using bbiwarg.Detectors.FingerDetection;
+using Emgu.CV;
+using Emgu.CV.Structure;
+
+namespace bbiwarg.Detectors.HandDetection
+{
+    class HandDetector
+    {
+        private DepthImage depthImage;
+        private List<Finger> fingers;
+        public List<Hand> Hands { get; private set; }
+
+        public HandDetector(DepthImage depthImage, List<Finger> fingers) {
+            this.depthImage = depthImage;
+            this.fingers = fingers;
+
+            detectHands();
+        }
+
+        private void detectHands() {
+            Image<Gray, byte> image = depthImage.Image.Copy();
+
+            //draw top finger slice
+            foreach (Finger finger in fingers) {
+                FingerSlice topSlice = finger.SliceTrail.Start;
+                image.Draw(new LineSegment2D(topSlice.Start, topSlice.End), new Gray(255), 2);
+            }
+
+            int numHands = 0;
+            foreach (Finger finger in fingers) {
+                
+            }
+
+        }
+    }
+}

+ 2 - 2
bbiwarg/Detectors/Palm/PalmDetector.cs → bbiwarg/Detectors/PalmDetection/PalmDetector.cs

@@ -10,10 +10,10 @@ using Emgu.CV.Structure;
 
 using bbiwarg.Utility;
 using bbiwarg.Images;
-using bbiwarg.Detectors.Fingers;
+using bbiwarg.Detectors.FingerDetection;
 using bbiwarg.Graphics;
 
-namespace bbiwarg.Detectors.Palm
+namespace bbiwarg.Detectors.PalmDetection
 {
     class PalmDetector
     {

+ 3 - 3
bbiwarg/Detectors/Touch/PalmTouchDetector.cs → bbiwarg/Detectors/TouchDetection/PalmTouchDetector.cs

@@ -3,11 +3,11 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
-using bbiwarg.Detectors.Fingers;
-using bbiwarg.Detectors.Palm;
+using bbiwarg.Detectors.FingerDetection;
+using bbiwarg.Detectors.PalmDetection;
 using bbiwarg.Utility;
 
-namespace bbiwarg.Detectors.Touch
+namespace bbiwarg.Detectors.TouchDetection
 {
     class PalmTouchDetector
     {

+ 3 - 3
bbiwarg/Detectors/Touch/PalmTouchEvent.cs → bbiwarg/Detectors/TouchDetection/PalmTouchEvent.cs

@@ -4,10 +4,10 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using bbiwarg.Utility;
-using bbiwarg.Detectors.Fingers;
-using bbiwarg.Detectors.Palm;
+using bbiwarg.Detectors.FingerDetection;
+using bbiwarg.Detectors.PalmDetection;
 
-namespace bbiwarg.Detectors.Touch
+namespace bbiwarg.Detectors.TouchDetection
 {
     class PalmTouchEvent : TouchEvent
     {

+ 3 - 3
bbiwarg/Detectors/Touch/TouchDetector.cs → bbiwarg/Detectors/TouchDetection/TouchDetector.cs

@@ -7,12 +7,12 @@ using System.Threading.Tasks;
 using Emgu.CV;
 using Emgu.CV.Structure;
 using bbiwarg.Images;
-using bbiwarg.Detectors.Fingers;
-using bbiwarg.Detectors.Palm;
+using bbiwarg.Detectors.FingerDetection;
+using bbiwarg.Detectors.PalmDetection;
 using bbiwarg.Utility;
 using bbiwarg.Graphics;
 
-namespace bbiwarg.Detectors.Touch
+namespace bbiwarg.Detectors.TouchDetection
 {
     class TouchDetector
     {

+ 2 - 2
bbiwarg/Detectors/Touch/TouchEvent.cs → bbiwarg/Detectors/TouchDetection/TouchEvent.cs

@@ -3,10 +3,10 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
-using bbiwarg.Detectors.Fingers;
+using bbiwarg.Detectors.FingerDetection;
 using bbiwarg.Utility;
 
-namespace bbiwarg.Detectors.Touch
+namespace bbiwarg.Detectors.TouchDetection
 {
     class TouchEvent
     {

+ 1 - 1
bbiwarg/Detectors/Touch/TouchTracker.cs → bbiwarg/Detectors/TouchDetection/TouchTracker.cs

@@ -7,7 +7,7 @@ using System.Threading.Tasks;
 using bbiwarg.Images;
 using bbiwarg.Graphics;
 
-namespace bbiwarg.Detectors.Touch
+namespace bbiwarg.Detectors.TouchDetection
 {
     class TouchTracker
     {

+ 2 - 2
bbiwarg/Graphics/OutputWindow.cs

@@ -8,7 +8,7 @@ using System.Threading.Tasks;
 using OpenTK;
 using OpenTK.Graphics.OpenGL;
 using bbiwarg.Images;
-using bbiwarg.Detectors.Touch;
+using bbiwarg.Detectors.TouchDetection;
 using bbiwarg.Utility;
 
 using Emgu.CV;
@@ -165,7 +165,7 @@ namespace bbiwarg.Graphics
 
             Timer.stop("onRenderFrame");
             
-            //Timer.outputAll();
+            Timer.outputAll();
         }
 
     }

+ 1 - 1
bbiwarg/Graphics/TouchEventVisualizer.cs

@@ -4,7 +4,7 @@ using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
-using bbiwarg.Detectors.Touch;
+using bbiwarg.Detectors.TouchDetection;
 using bbiwarg.Utility;
 
 namespace bbiwarg.Graphics

+ 1 - 1
bbiwarg/Images/DepthImage.cs

@@ -7,7 +7,7 @@ using System.Threading.Tasks;
 using Emgu.CV;
 using Emgu.CV.Structure;
 using bbiwarg.Graphics;
-using bbiwarg.Detectors.Fingers;
+using bbiwarg.Detectors.FingerDetection;
 using bbiwarg.Utility;
 
 namespace bbiwarg.Images

+ 1 - 1
bbiwarg/Images/EdgeImage.cs

@@ -6,7 +6,7 @@ using System.Text;
 using System.Threading.Tasks;
 using Emgu.CV;
 using Emgu.CV.Structure;
-using bbiwarg.Detectors.Fingers;
+using bbiwarg.Detectors.FingerDetection;
 
 using System.Diagnostics;
 using bbiwarg.Utility;

+ 10 - 3
bbiwarg/VideoHandle.cs

@@ -6,9 +6,10 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Diagnostics;
 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.InputProviders;
 using Emgu.CV;
@@ -42,6 +43,7 @@ namespace bbiwarg
         private EdgeImage edgeImage;
         
         private FingerDetector fingerDetector;
+        private HandDetector handDetector;
         private PalmDetector palmDetector;
         private TouchDetector touchDetector;
         private PalmTouchDetector palmTouchDetector;
@@ -162,6 +164,11 @@ namespace bbiwarg
             fingerTracker.setDetectedTouchEventsThisFrame(fingerDetector.Fingers, OutputImages[1]);
             Timer.stop("fingerTracking");
 
+            //detect hands
+            Timer.start("handDetection");
+            handDetector = new HandDetector(depthImage, fingerTracker.TrackedFingers);
+            Timer.stop("handDetection");
+
             //remove background noise
             Timer.start("removeBackground");
             depthImage.removeBackground(fingerDetector.Fingers);

+ 13 - 11
bbiwarg/bbiwarg.csproj

@@ -67,17 +67,19 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="Constants.cs" />
-    <Compile Include="Detectors\Fingers\Finger.cs" />
-    <Compile Include="Detectors\Fingers\FingerDetector.cs" />
-    <Compile Include="Detectors\Fingers\FingerSliceTrail.cs" />
-    <Compile Include="Detectors\Fingers\FingerSlice.cs" />
-    <Compile Include="Detectors\Fingers\FingerTracker.cs" />
-    <Compile Include="Detectors\Palm\PalmDetector.cs" />
-    <Compile Include="Detectors\Touch\PalmTouchDetector.cs" />
-    <Compile Include="Detectors\Touch\PalmTouchEvent.cs" />
-    <Compile Include="Detectors\Touch\TouchDetector.cs" />
-    <Compile Include="Detectors\Touch\TouchEvent.cs" />
-    <Compile Include="Detectors\Touch\TouchTracker.cs" />
+    <Compile Include="Detectors\FingerDetection\Finger.cs" />
+    <Compile Include="Detectors\FingerDetection\FingerDetector.cs" />
+    <Compile Include="Detectors\FingerDetection\FingerSliceTrail.cs" />
+    <Compile Include="Detectors\FingerDetection\FingerSlice.cs" />
+    <Compile Include="Detectors\FingerDetection\FingerTracker.cs" />
+    <Compile Include="Detectors\HandDetection\Hand.cs" />
+    <Compile Include="Detectors\HandDetection\HandDetector.cs" />
+    <Compile Include="Detectors\PalmDetection\PalmDetector.cs" />
+    <Compile Include="Detectors\TouchDetection\PalmTouchDetector.cs" />
+    <Compile Include="Detectors\TouchDetection\PalmTouchEvent.cs" />
+    <Compile Include="Detectors\TouchDetection\TouchDetector.cs" />
+    <Compile Include="Detectors\TouchDetection\TouchEvent.cs" />
+    <Compile Include="Detectors\TouchDetection\TouchTracker.cs" />
     <Compile Include="Graphics\OutputWindow.cs" />
     <Compile Include="Graphics\TouchEventVisualizer.cs" />
     <Compile Include="Images\DepthImage.cs" />