static async Task Main(string[] args) { var recognizer = new ReceiptRecognizer(new EmguLargestAreaRecognizer(), new TesseractRecognizer()); var image = Image.FromFile(@"C:\Users\aleks\Desktop\test\setOfImages\IMG_20201228_180236x.jpg"); var transaction = await recognizer.Recognize(image); Console.WriteLine(transaction.ConvertToString()); //await TestReco(); }
static async Task TestReco() { var workingDirectory = new DirectoryInfo(@"C:\Users\aleks\Desktop\test\setOfImages"); using var recognizer = new ReceiptRecognizer(new EmguLargestAreaRecognizer(), new TesseractRecognizer()); var csvText = ""; var width = 1000; foreach (var imageFile in workingDirectory.GetFiles("*x.jpg")) { csvText += imageFile.Name + ";"; var stopWatch = new Stopwatch(); stopWatch.Start(); using var image = Image.FromFile(imageFile.FullName); var fileName = new string(imageFile.FullName.TakeWhile(c => !c.Equals('.')).ToArray()); Console.WriteLine(fileName); var resized = recognizer.GetResizedImage(image, width); var cropped = await recognizer.GetCroppedImage(resized); //resized.Save(fileName + ".min.jpg"); //cropped.Save(fileName + ".crop.jpg"); csvText += cropped.Width + ";" + cropped.Height + ";"; // Text recognition var page = await recognizer.ReadImage(cropped); //Console.WriteLine($"Mean confidence: {page.GetMeanConfidence()}"); csvText += page.GetMeanConfidence() + ";"; //Console.WriteLine($"BEGIN TEXT;\n{page.GetText()}\nEND OF TEXT;"); var receiptText = new string(page.GetText()); page.Dispose(); var transaction = recognizer.TextToTransaction(receiptText); File.WriteAllText(imageFile.FullName + ".txt", receiptText, Encoding.UTF8); //Console.WriteLine(transaction.ConvertToString()); //Console.WriteLine($" >>> Recognition time: {stopWatch.Elapsed}"); csvText += transaction.ConvertToCsvRow() + ";"; csvText += stopWatch.Elapsed + ";"; csvText += stopWatch.Elapsed.TotalMilliseconds + "\n"; } File.WriteAllText(workingDirectory.FullName + @"\results" + width + ".csv", csvText, Encoding.UTF8); }