diff --git a/Windows/CS/Framework4.0/Camera/Camera/LedDetector.cs b/Windows/CS/Framework4.0/Camera/Camera/LedDetector.cs index 1160801..8bb8430 100644 --- a/Windows/CS/Framework4.0/Camera/Camera/LedDetector.cs +++ b/Windows/CS/Framework4.0/Camera/Camera/LedDetector.cs @@ -5,11 +5,13 @@ using Emgu.CV.CvEnum; using Emgu.CV.Structure; public enum LedState { Off, On } - public enum LedColor { Unknown, Red, Green, Blue } public class LedDetector { + private const int BRIGHT_LIMIT = 110; + private const int SAT_LIMIT = 35; + public Tuple Detect(Image image, Rectangle roi) { using (Image subImg = image.GetSubRect(roi)) @@ -27,9 +29,12 @@ public class LedDetector S.Dispose(); V.Dispose(); - bool isOff = (avgS < 38) || (avgV < 55); - if (isOff) + bool isOn = avgV > BRIGHT_LIMIT && avgS < SAT_LIMIT; + + if (!isOn) + { return new Tuple(LedState.Off, LedColor.Unknown); + } LedColor color = LedColor.Unknown; if ((avgH >= 0 && avgH <= 10) || (avgH >= 170 && avgH <= 180))