Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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());
        }