Как использовать пользовательские слова в Tesseract (Java)?

1

Я использую Tesseract для целей OCR, и я добавил несколько дополнительных слов в " fin.user-words " (я хотел бы избежать создания нового списка слов и замены tessdata/fin.word-dawg с ним). Теперь мне удалось сделать это в командной строке:

>tesseract image.png result -l fin TestConfig

где TestConfig (файл конфигурации Tesseract, расположенный под .../tessdata/configs) подавляет системные словари и заставляет Tesseract загружать мои слова:

load_system_dawg F
load_freq_dawg F
user_words_suffix user-words

ref: 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");

Принуждение Tesseract к шаблону (четыре цифры подряд)

Теги:
ocr
tesseract
tess4j

1 ответ

0
Лучший ответ

setConfig метод является новым, так как Tess4J v1.4 (см документ).

instance.setConfigs(Arrays.asList("TestConfig");
  • 0
    Спасибо @nguyenq. После обновления версии 1.4 я больше не могу использовать Tesseract: Exception in thread "Run$_main" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils at net.sourceforge.tess4j.util.LoadLibs.copyJarResourceToDirectory(Unknown Source) at net.sourceforge.tess4j.util.LoadLibs.extractTessResources(Unknown Source) at net.sourceforge.tess4j.util.LoadLibs.<clinit>(Unknown Source) at net.sourceforge.tess4j.TessAPI.<clinit>(Unknown Source) at net.sourceforge.tess4j.Tesseract.init(Unknown Source) at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
  • 0
    at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source) at TestTesseract.TestTesseract(TestTesseract.java:302) Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 10 more
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню