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