如何在Tesseract(Java)中使用用户词?

时间:2015-01-28 13:03:26

标签: java ocr tesseract tess4j config-spec

我使用Tesseract进行OCR目的,我在“ fin.user-words ”中添加了一些额外的单词(我想避免创建一个新单词列表并替换 tessdata / fin.word-dawg 用它)。 现在,我在命令提示符下成功完成了它:

>tesseract image.png result -l fin TestConfig

其中TestConfig(位于 ... / tessdata / configs 下的Tesseract配置文件)压制系统词典并强制Tesseract加载我的单词:

load_system_dawg F
load_freq_dawg F
user_words_suffix user-words

参考:http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseract.1.html#_config_files_and_augmenting_with_user_data

我试图在Java中复制上面的命令行过程,但似乎Tesseract忽略了配置选项。 这是我正在使用的Java代码的一部分:

public static TestTesseract(BufferedImage image) {
        Tesseract instance = Tesseract.getInstance();
        instance.setLanguage("fin");
        instance.setTessVariable("load_system_dawg", "F");
        instance.setTessVariable("load_freq_dawg", "F");
        instance.setTessVariable("user_words_suffix", "user-words");
        try {
            String result = instance.doOCR(image);
            System.out.println(result);         
        } catch (TesseractException e) {
            System.err.println(e.getMessage());
        }
}

以下是我能找到的最近的问题;但是,我可以找到 setConfigs 方法:

instance.setConfigs(Arrays.asList("bazaar");

Forcing Tesseract to match pattern (four digits in a row)

1 个答案:

答案 0 :(得分:0)

自{Tess4J v1.4以来setConfig方法是新的(见doc)。

instance.setConfigs(Arrays.asList("TestConfig");