tesseract / tesjeract вылетает приложение при создании экземпляра - PullRequest
0 голосов
/ 13 ноября 2011

Я бы хотел использовать tesseract в Java, так как мне нужно выполнить OCR для моих плагинов ImageJ. Поэтому я использую оболочку Java "tesjeract". Однако, когда я создаю экземпляр new Tesjeract("eng") ImageJ падает, не предоставляя никакой информации.

Загрузка библиотек, кажется, работает, потому что, когда я не создаю экземпляр new Tesjeract("eng") и не запускаю один и тот же плагин дважды, во второй раз я получаю UnsatisfiedLinkError: Native library C:\Windows\System32\tessdll.dll already loaded in another classloader.

Есть идеи, что я могу сделать, чтобы решить проблему?

В случае, если это уместно, я использую 64-битную Windows 7, но настроил ImageJ на использование 32-битной JVM, поскольку tesseract доступен только как 32-битная dll. Я загружаю dll в статический блок, и они оба помещены в папку C: \ Windows \ System32.

static
{
    System.loadLibrary("tessdll");
    System.loadLibrary("tesjeract");
}

Редактировать:

Если выяснилось, что у кого-то возникла подобная проблема в c ++, и решение состояло в том, что отсутствовали языковые файлы. Я полагаю, что это проблема и в моем случае.

Вот так должен выглядеть каталог (найдено здесь ):

project.exe
tessdll.dll
tessdata ----- eng.DangAmbigs
            |- eng.freq-dawg
            |- eng.inttemp
            |- eng.normproto
            |- eng.pffmtable
            |- eng.unicharset
            |- eng.user-words
             - eng.word-dawg 

ImageJ настроен на использование C:\Program Files(x86)\Java\jre7\bin\javaw.exe. Поэтому я поместил мои dll, включая папку tessdata, в тот же каталог и удалил dll из System32. Тем не менее приложение вылетает.

1 Ответ

1 голос
/ 14 ноября 2011

*. Trainingdata - это языковые данные для tess 3.x. Для 2.x вам понадобятся такие, как tesseract-2.00.eng.tar.gz .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...