private DetectionData PrepareDetectionDataExample()
 {
     var dd = new DetectionData(new Size(450,450));
     dd.AddColor(new List<Rectangle> { new Rectangle(120, 10, 100, 100), new Rectangle(230, 10, 100, 100), new Rectangle(340, 230, 100, 100), new Rectangle(230, 340, 100, 100), new Rectangle(340, 340, 100, 100) });
     dd.AddColor(new List<Rectangle> { new Rectangle(10, 120, 100, 100), new Rectangle(10, 230, 100, 100) });
     dd.AddColor(new List<Rectangle> { new Rectangle(340, 10, 100, 100), new Rectangle(340, 120, 100, 100), new Rectangle(120, 230, 100, 100), new Rectangle(230, 230, 100, 100) });
     dd.AddColor(new List<Rectangle> { new Rectangle(120, 120, 100, 100), new Rectangle(230, 120, 100, 100) });
     return dd;
 }
        private void UpdateImages(string path)
        {
            if (String.IsNullOrWhiteSpace(path))
                sourceImg = new Image<Bgr, byte>(100, 100);
            else
                sourceImg = new Image<Bgr, byte>(imageFilePath);
            var hsvImg = sourceImg.Convert<Hsv, byte>();

            blueImg = ImageTools.FilterColor(hsvImg, UserSettings.instance.blueMin, UserSettings.instance.blueMax);
            redImg = ImageTools.FilterColor(hsvImg, UserSettings.instance.RedRange);
            greenImg = ImageTools.FilterColor(hsvImg, UserSettings.instance.greenMin, UserSettings.instance.greenMax);
            yellowImg = ImageTools.FilterColor(hsvImg, UserSettings.instance.yellowMin, UserSettings.instance.yellowMax);
            composedImg = ImageTools.CombineMaps(new List<KeyValuePair<Image<Gray, byte>, Bgr>>
            {
                new KeyValuePair<Image<Gray, byte>, Bgr>(blueImg, ImageTools.Colors.Blue),
                new KeyValuePair<Image<Gray, byte>, Bgr>(redImg, ImageTools.Colors.Red),
                new KeyValuePair<Image<Gray, byte>, Bgr>(greenImg, ImageTools.Colors.Green),
                new KeyValuePair<Image<Gray, byte>, Bgr>(yellowImg, ImageTools.Colors.Yellow),

            });

            if (operation == OperationType.Detection)
            {
                DetectionData ddb = ImageTools.DetectSquares(blueImg);
                DetectionData ddr = ImageTools.DetectSquares(redImg);
                DetectionData ddg = ImageTools.DetectSquares(greenImg);
                DetectionData ddy = ImageTools.DetectSquares(yellowImg);

                ddb.RemoveNoises();
                ddr.RemoveNoises();
                ddg.RemoveNoises();
                ddy.RemoveNoises();

                DetectionData common = new DetectionData(ddb);
                common.AddColor(ddr);
                common.AddColor(ddg);
                common.AddColor(ddy);

                composedImg = common.DrawDetection().Convert<Bgr,byte>();
                blueImg = ddb.DrawDetection();
                redImg = ddr.DrawDetection();
                greenImg = ddg.DrawDetection();
                yellowImg = ddy.DrawDetection();

                this.board = common.CreateBoard();
            }
        }