我将 ABBYY FineReader 12 与 Java API 一起用于 OCR 任务,重点是识别几种众所周知的模式(正则表达式)中的 ID。
我在识别相似的字符时遇到了麻烦,例如:有时g
's 被误认为9
's,0
' s 被误认为 ' O
s 1
' I
s 等。
我认为使用正则表达式模式可能有助于克服这一点。我想知道如何将模式文件合并到 OCR 过程中以提高准确性。
我应该使用用户模式文件吗?
IRecognizerParams recognizerParams = engine.CreateDocumentProcessingParams()
.getPageProcessingParams()
.getRecognizerParams();
recognizerParams.setUserPatternsFile("patterns.txt1");
recognizerParams.setTrainUserPatterns(true);
或通过添加正则表达式类型字典?
IBaseLanguage lang = engine.CreateLanguageDatabase()
.CreateTextLanguage()
.getBaseLanguages()
.AddNew();
lang.setIsNaturalLanguage(false);
String pattern = "[A-Z0-9]{8}\\d");
lang.getDictionaryDescriptions()
.AddNew(DictionaryTypeEnum.DT_RegularExpression)
.GetAsRegExpDictionaryDescription()
.SetText(pattern);