Я использую 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
Я пытаюсь воспроизвести описанную выше процедуру командной строки на 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");
setConfig
метод является новым, так как Tess4J v1.4 (см документ).
instance.setConfigs(Arrays.asList("TestConfig");
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)
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