【发布时间】:2015-01-11 01:32:48
【问题描述】:
我试图让 Tesseract(使用 Tess4J 包装器)仅匹配特定模式。模式是连续四位数,我认为应该是\d\d\d\d。这是我正在喂 tesseract 的图像的一个非常小子集(平面图受到限制,所以我很谨慎地发布更多内容):http://mike724.com/view/a06771
我正在使用以下 java 代码:
File imageFile = new File("/<redacted>/file.pdf");
Tesseract instance = Tesseract.getInstance();
instance.setTessVariable("load_system_dawg", "F");
instance.setTessVariable("load_freq_dawg", "F");
instance.setTessVariable("user_words_suffix", "");
instance.setTessVariable("user_patterns_suffix", "\\d\\d\\d\\d");
try {
String result = instance.doOCR(imageFile);
System.out.println(result);
} catch (TesseractException e) {
System.err.println(e.getMessage());
}
我遇到的问题是 tesseract 似乎没有遵守这些配置选项,我仍然在结果中得到文本/单词。我希望只获得房间号(例如 2950)。
【问题讨论】:
-
Tesseract 不是解析器。它只是给你它读到的东西。之后你必须选择你需要的东西!
-
嗯,是的,但我想如果我“训练” tesseract 我只想要数字并且只想要四个一组的数字,它会提高准确性。现在准确度很差,完全无法使用。
-
添加 char 白名单 (0123456789) 也会对您有所帮助!