public void GetWindow(string imageName) { _graphicFactory.LoadImage(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"..\..\ImageTest\{imageName}")); var engine = new RegonizeEngine(_screenHelper); var r = new Rectangle { X = 700, Y = 45, Width = 500, Height = 600 }; var color = Color.FromArgb(20, 20, 20); var seuil = 20; var tmp = _screenHelper.ScreenArea(r); Clipboard.SetImage(ConvertBitmap(tmp)); var filteredImage = RegonizeEngine.FilterImage(new Image <Bgr, byte>(tmp), new RegonizeEngine.FilterParam(color, seuil)); Clipboard.SetImage(ConvertBitmap(filteredImage.Bitmap)); var rr = engine.GetAllRectangles(tmp, r, color, seuil, new RegonizeEngine.ContourAcceptance { Height = 150, HeightOffset = 150, Width = 330, WidthOffset = 100, Size = 500, SizeOffset = 500 }); var zz = rr.OrderByDescending(a => a.Height + a.Width).Take(10).ToList(); using (var g = Graphics.FromImage(tmp)) { g.DrawRectangles(new Pen(Color.Red, 2), zz.ToArray()); } Clipboard.SetImage(ConvertBitmap(tmp)); }
private void SolveMiniGame(EventHandler <KeysEventArgs> fishingStep4Callback) { var gameArea = new Rectangle { X = 620, Y = 310, Width = 180, Height = 170 }; var img = _screenHelper.ScreenArea(gameArea); DebugWindow.SetImageFishingGameRaw(img); var startPointOfTimeGauge = FindTimeGauge(img); var colorFilter = GetColorNoise(img, startPointOfTimeGauge); var filteredImage = RegonizeEngine.FilterImage(new Image <Bgr, byte>(img), new RegonizeEngine.FilterParam(colorFilter, 100)); DebugWindow.SetImageFishingGameFiltered(filteredImage.Bitmap); var keys = _xCoordOfFishingKeyIndicators .Select(x => new RegonizeEngine.FishTriangle(filteredImage, new Point(x, 8))) .Select(t => t.GetOrientation()) .Where(o => o != RegonizeEngine.FishTriangle.Orientation.None) .Select(GetKeyFromOrientedTriangle) .ToList(); fishingStep4Callback(this, new KeysEventArgs(keys)); }
public void GetTrianglesOfFishingGame(int xCoord, RegonizeEngine.FishTriangle.Orientation orientation) { //620-310 //87-127 var pointOfTimeGauge = new System.Drawing.Point(87 + 620, 127 + 310); _graphicFactory.LoadImage(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\ImageTest\b.jpg")); var r = new Rectangle { X = pointOfTimeGauge.X - 35, Y = pointOfTimeGauge.Y - 45, Width = 380, Height = 17 }; var filteredImage = RegonizeEngine.FilterImage(new Image <Bgr, byte>(_screenHelper.ScreenArea(r)), new RegonizeEngine.FilterParam(Color.FromArgb(0, 85, 255), 100)); var t = new RegonizeEngine.FishTriangle(filteredImage, new System.Drawing.Point(xCoord, 8)); Clipboard.SetImage(ConvertBitmap(t.GetBitmap())); Assert.AreEqual(orientation, t.GetOrientation()); }