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(); } }