tesseract / tesjeract在实例化时崩溃应用程序

时间:2011-11-12 23:36:06

标签: java dll crash ocr tesseract

我想在Java中使用tesseract,因为我需要为我的ImageJ插件执行OCR。因此我使用Java包装器“tesjeract”。但是,当我在没有提供任何信息的情况下实例化new Tesjeract("eng") ImageJ崩溃时。

加载库似乎有效,因为当我没有实例化new Tesjeract("eng")并运行相同的插件两次时,第二次收到UnsatisfiedLinkError: Native library C:\Windows\System32\tessdll.dll already loaded in another classloader

任何想法,我能做些什么来解决问题?

如果它是相关的,我使用的是Windows 7 64位,但已将ImageJ配置为使用32位JVM,因为tesseract仅作为32位dll提供。我在一个静态块中加载dll,它们都放在C:\ Windows \ System32文件夹中。

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

编辑:

如果发现有人在c ++中遇到类似的问题,解决方案是languange文件丢失了。我想这也是我案例中的问题。

这就是目录的样子(找到here):

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。所以我将包括tessdata文件夹的dll放在同一目录中,并从System32中删除了dll。仍然,应用程序崩溃。

1 个答案:

答案 0 :(得分:1)

* .traedateddata是tess 3.x的语言数据。你需要2.x的那些,例如tesseract-2.00.eng.tar.gz