В настоящее время я использую IronOCR, но бесплатная/пробная версия не обеспечивает надежное извлечение всех полей, а коммерческая лицензия для моего случая стоит дорого.
Код: Выделить всё
public async Task ReadLicenseAsync(string imagePath)
{
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
using OcrInput input = new OcrInput(imagePath);
OcrResult result = await Task.Run(() => ocr.Read(input));
string text = result.Text;
Match licenseMatch = Regex.Match(text, @"[A-Z0-9]{6,15}");
MatchCollection dates = Regex.Matches(text, @"\d{2}/\d{2}/\d{4}");
return text;
}