Пример #1
0
        static void ProcessInputImages(string[] args)
        {
            var inputFiles = File.ReadAllLines("inputFiles.txt")
                             .Where(inputFile => !string.IsNullOrWhiteSpace(inputFile))
                             .Select(inputFile => inputFile.Trim())
                             .Where(inputFile => inputFile[0] != '#');

            var minimapArea       = new RectangleF(1640f / 1920f, 800f / 1080f, 280f / 1920f, 280f / 1080f);
            var whiteRectDetector = new WhiteRectangleDetector(minimapArea, _enableDebugOutput);

            foreach (var imgFilePathOrUrl in inputFiles)
            {
                Console.WriteLine($"Processing file {imgFilePathOrUrl}");
                var img    = ImageUtils.ReadImage(imgFilePathOrUrl, "inputCache");
                var result = whiteRectDetector.FindWhiteRectangle(img);
                if (result != null)
                {
                    Console.WriteLine($"Detected MiniMap Viewport at {result.AbsolutePosition.ToString()}");
                    Console.WriteLine($"relative position in MiniMap: {result.NormalizedToDetectionAreaPosition.ToString()}");
                }
                else
                {
                    Console.Error.WriteLine("No MiniMap Viewport found.");
                }

                if (_enableDebugOutput)
                {
                    PresentDebugInfoWithOriginalFile(imgFilePathOrUrl, whiteRectDetector.LastDebugInfo);
                }

                Console.WriteLine();
            }
        }
Пример #2
0
        static void RectDrawDemo()
        {
            var whiteRectDetector = new WhiteRectangleDetector(new RectangleF(0, 0, 1, 1), _enableDebugOutput);

            WhiteRectangleDetector.RectangleDetectionResult lastResult = null;

            var capturer = new CaptureDemo.CaptureRectDraw();

            capturer.OnImageCaptured += img =>
            {
                try
                {
                    var result = whiteRectDetector.FindWhiteRectangle(img);
                    if (lastResult != result)
                    {
                        // Clear console line.
                        Console.Write($"\r{_consoleClear}");
                    }

                    if (result != null)
                    {
                        Console.Write($"\rFound white rectangle at {result.AbsolutePosition.ToString()}");
                        if (_enableDebugOutput)
                        {
                            PresentDebugInfo("rectDraw", whiteRectDetector.LastDebugInfo);
                        }
                    }
                    else
                    {
                        Console.Write("\rWhite rectangle not found.");
                    }
                    lastResult = result;
                }
                finally
                {
                    img.Dispose();
                }

                System.Threading.Thread.Sleep(10);
            };
            var cts = capturer.Start();

            Console.WriteLine("Waiting for RectDraw window. Press <escape> to exit.");
            while (Console.ReadKey().Key != ConsoleKey.Escape)
            {
            }

            cts.Cancel();
        }