tess4j версия 4.0.0-SNAPSHOT. Неверный доступ к памяти, когда я установил oem на 2 или 3.
TESSDATA_PREFIX устанавливается в родительскую папку папки tessdata командной строки tesseract 4.0.0 (C:\Program Files (x86)\Tesseract-OCR). Тессеракт командной строки выдает разумный результат во всех четырех режимах механизма распознавания.
Вот мой код:
package tessTest;
import java.util.ArrayList;
import java.util.List;
import net.sourceforge.tess4j.*;
import net.sourceforge.tess4j.ITesseract.RenderedFormat;
public class MainClass {
public static void main(String[] argv) {
ITesseract instance = new Tesseract1();
List<RenderedFormat> formats = new ArrayList<RenderedFormat>();
formats.add(RenderedFormat.PDF);
try {
instance.setPageSegMode(1);
instance.setOcrEngineMode(2);
instance.setTessVariable("textonly_pdf", "1");
instance.createDocuments("D:\\Documents\\Malverne.jpeg",
"D:\\Documents\\testOCR", formats);
} catch (TesseractException e) {
System.err.println(e.getMessage());
}
}
}
С помощью setOcrEngineMode(1) или setOcrEngineMode(0) он создает PDF, как и ожидалось. С setOcrEngineMode(2) и setOcrEngineMode(3) это приводит к следующей ошибке:
Exception in thread "main" java.lang.Error: Invalid memory access
at net.sourceforge.tess4j.TessAPI1.TessBaseAPIProcessPages(Native Method)
at net.sourceforge.tess4j.Tesseract1.createDocuments(Tesseract1.java:542)
at net.sourceforge.tess4j.Tesseract1.createDocuments(Tesseract1.java:517)
at net.sourceforge.tess4j.Tesseract1.createDocuments(Tesseract1.java:484)
at tessTest.MainClass.main(MainClass.java:21)
Detected 358 diacritics
contains_unichar_id(unichar_id):Error:Assert failed:in file
c:\projects\github\tesseract-ocr\ccutil\unicharset.h, line 513
Кажется, это проблема с этим конкретным образом, так как на других изображениях OEM 2 отлично работает с tess4j 4.0.0. Я знаю, что предварительная обработка изображения, вероятно, поможет, но я работаю над проектом, в котором пользователи должны будут регулярно распознавать многие тысячи изображений, только некоторые из которых похожи на эту, так что предварительная обработка выполняется специально для каждого конкретного случая. Кейс-база недопустима.
Это изображение, о котором идет речь: http://malvernetheatre.org/wp-content/uploads/2012/07/Malverne-Community-Theatre-Newspaper-Reviews-14-page-0.jpg
Любая помощь будет принята с благодарностью. Спасибо заранее.