Browse Source

added Constants class (only colors until now)

Alexander Hendrich 11 years ago
parent
commit
7eaab86d97

+ 34 - 0
bbiwarg/Constants.cs

@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace bbiwarg
+{
+    class Constants
+    {
+        public static readonly Color ColorDetected = Color.White;
+        public static readonly Color ColorTracked = Color.Yellow;
+
+        //public static readonly Color EdgeColor = Color.Blue; // edgeImage draw direct to blue chanel from outputImage
+
+        public static readonly Color FingerSliceColor = Color.Magenta;
+        public static readonly Color FingerDetectedColor = ColorDetected;
+        public static readonly Color FingerTrackedColor = ColorTracked;
+
+        public static readonly Color TouchEventDetectedColor = ColorDetected;
+        public static readonly Color TouchEventTrackedColor = ColorTracked;
+        public static readonly Color TouchEventAreaMatchedSubtractColor = Color.DarkOrange;
+        public static readonly Color TouchEventAreaNonMatchedSubtractColor = Color.DarkSlateGray;
+        public static readonly Color TouchEventStatusBarColor = Color.Green;
+
+        public static readonly Color PalmQuadColor = Color.Blue;
+        public static readonly Color PalmGridColor = Color.CornflowerBlue;
+        public static readonly Color PalmConturColor = Color.Red;
+        public static readonly Color PalmConvexHullColor = Color.Green;
+
+
+    }
+}

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

@@ -279,9 +279,9 @@ namespace bbiwarg.Detectors.Fingers
             FingerSliceTrail trail = finger.SliceTrail;
             for (int i = 0; i < trail.NumSlices; i++)
             {
-                outputImage.drawLineSegment(trail.Slices[i].LineSegment, Color.DeepPink);
+                outputImage.drawLineSegment(trail.Slices[i].LineSegment, Constants.FingerSliceColor);
             }
-            outputImage.drawLineSegment(finger.LineSegment, Color.Orange);
+            outputImage.drawLineSegment(finger.LineSegment, Constants.FingerDetectedColor);
         }
     }
 }

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

@@ -63,7 +63,7 @@ namespace bbiwarg.Detectors.Fingers
                 }
                 if (tracked)
                 {
-                    outputImage.drawLineSegment(finger.LineSegment, Color.Yellow);
+                    outputImage.drawLineSegment(finger.LineSegment, Constants.FingerTrackedColor);
                     TrackedFingers.Add(finger);
                 }
             }

+ 5 - 5
bbiwarg/Detectors/Palm/PalmDetector.cs

@@ -261,14 +261,14 @@ namespace bbiwarg.Detectors.Palm
 
         private void draw()
         {
-            outputImage.drawContour(palmContour, Color.Red);
-            outputImage.drawPoints(palmContour.GetConvexHull(Emgu.CV.CvEnum.ORIENTATION.CV_CLOCKWISE), Color.Green);
+            outputImage.drawContour(palmContour, Constants.PalmConturColor);
+            outputImage.drawPoints(palmContour.GetConvexHull(Emgu.CV.CvEnum.ORIENTATION.CV_CLOCKWISE), Constants.PalmConvexHullColor);
 
             if (PalmQuad != null)
             {
                 Vector2D[] vertices = PalmQuad.Vertices;
                 for (int i = 0; i < 4; ++i)
-                    outputImage.drawLineSegment(new bbiwarg.Utility.LineSegment2D(vertices[i], vertices[(i + 1) % 4]), Color.Blue);
+                    outputImage.drawLineSegment(new bbiwarg.Utility.LineSegment2D(vertices[i], vertices[(i + 1) % 4]), Constants.PalmQuadColor);
 
                 drawGrid(new Vector2D(vertices[0]), new Vector2D(vertices[1]), new Vector2D(vertices[2]), new Vector2D(vertices[3]));
             }
@@ -287,12 +287,12 @@ namespace bbiwarg.Detectors.Palm
 
             for (int i = 1; i < numRows; i++)
             {
-                outputImage.drawLineSegment(new bbiwarg.Utility.LineSegment2D(a + i * relAB, d + i * relDC), Color.CornflowerBlue);
+                outputImage.drawLineSegment(new bbiwarg.Utility.LineSegment2D(a + i * relAB, d + i * relDC), Constants.PalmGridColor);
             }
 
             for (int i = 1; i < numColumns; i++)
             {
-                outputImage.drawLineSegment(new bbiwarg.Utility.LineSegment2D(a + i * relAD, b + i * relBC), Color.CornflowerBlue);
+                outputImage.drawLineSegment(new bbiwarg.Utility.LineSegment2D(a + i * relAD, b + i * relBC), Constants.PalmGridColor);
             }
         }
     }

+ 10 - 4
bbiwarg/Detectors/Touch/TouchDetector.cs

@@ -43,7 +43,7 @@ namespace bbiwarg.Detectors.Touch
                     float y = HelperFunctions.thresholdRange<float>(0, depthImage.Height - 1, tipPoint.Y + directionFactor * direction.Y);
                     Vector2D tep = new Vector2D(x, y);
 
-                    outputImage.fillCircle(tep.IntX, tep.IntY, 5, Color.Orange);
+                    outputImage.fillCircle(tep.IntX, tep.IntY, 5, Constants.TouchEventDetectedColor);
                     TouchEvent touchEvent = new TouchEvent(tep, floodValue, finger);
                     TouchEvents.Add(touchEvent);
                 }
@@ -70,12 +70,18 @@ namespace bbiwarg.Detectors.Touch
                 {
                     Int16 depth = depthImage.getDepthAt(x, y);
                     Color color = outputImage.getColotAt(x, y);
-                    outputImage.drawPixel(x, y, Color.FromArgb(color.R / 2, color.G / 2, color.B / 2));
+                    Color subtractColor;
                     if (Math.Abs(depthAtTouch - depth) < maxDepthDifference)
                     {
                         matchedPixels++;
-                        outputImage.drawPixel(x, y, Color.FromArgb(color.R / 2, color.G / 2, color.B));
+                        subtractColor = Constants.TouchEventAreaMatchedSubtractColor;
                     }
+                    else
+                    {
+                        subtractColor = Constants.TouchEventAreaNonMatchedSubtractColor;
+                    }
+                    Color newColor = Color.FromArgb(Math.Max(color.R - subtractColor.R, 0), Math.Max(color.G - subtractColor.G, 0), Math.Max(color.B - subtractColor.B, 0));
+                    outputImage.drawPixel(x, y, newColor);
                     countedPixels++;
                 }
             }
@@ -85,7 +91,7 @@ namespace bbiwarg.Detectors.Touch
             //status bar (% of matched pixels) -> green
             for (int x = minX; x < minX + (maxX - minX) * rel; x++)
             {
-                outputImage.drawPixel(x, maxY - 1, Color.Yellow);
+                outputImage.drawPixel(x, maxY - 1, Constants.TouchEventStatusBarColor);
             }
 
             return rel;

+ 3 - 3
bbiwarg/Graphics/OutputWindow.cs

@@ -133,7 +133,7 @@ namespace bbiwarg.Graphics
             if (videoHandle.sourceIsMovie())
                 Title = "BBIWARG - Output (Frame " + videoHandle.getCurrentMovieFrame() + ")";
 
-            Timer.start("outputTextures");
+            Timer.start("buildTextures");
             GL.Enable(EnableCap.Texture2D);
                 
             int imageIndex = 0;
@@ -151,12 +151,12 @@ namespace bbiwarg.Graphics
                 ++imageIndex;
             }
 
+            Timer.stop("buildTextures");
+
             Timer.start("swapBuffers");
             SwapBuffers();
             Timer.stop("swapBuffers");
 
-            Timer.stop("outputTextures");
-
             Timer.stop("onRenderFrame");
             
             Timer.outputAll();

+ 1 - 0
bbiwarg/bbiwarg.csproj

@@ -66,6 +66,7 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="Constants.cs" />
     <Compile Include="Detectors\Fingers\Finger.cs" />
     <Compile Include="Detectors\Fingers\FingerDetector.cs" />
     <Compile Include="Detectors\Fingers\FingerSliceTrail.cs" />