tesseract/tesjeractがインスタンス化時にアプリケーションをクラッシュさせる

ImageJプラグインでOCRを実行する必要があるため、Javaでtesseractを使用したいと思います。したがって、私はJavaラッパー
“tesjeract”を使用しています。しかし、 new Tesjeract(
"eng")
をインスタンス化すると、ImageJは何の情報も与えずにクラッシュします。

新しいTesjeract( “eng”)のインスタンスを作成せずに同じプラグインを2回実行すると、2回目に
UnsatisfiedLinkError:ネイティブライブラリCを受け取るため、ライブラリを読み込むことができているようです:
Windows System32 tessdll.dllはすでに別のクラスローダーにロードされています

任意のアイデア、私は問題を解決するために何ができますか?

関係がある場合は、Windows 7
64ビットを使用していますが、32ビットJVMを使用するようにImageJを設定しました。これは、tesseractは32ビットdllとしてのみ使用できるためです。静的なブロックにDLLをロードしていて、両方ともC:
Windows System32フォルダに配置されています。

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

編集:

誰かがC
++で同様の問題を経験していることがわかった場合、解決方法はlangangeファイルが欠落していることでした。私はそれも私の場合の問題だと思います。

This is how the directory should look like ( found 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を削除しました。それでも、アプリケーションがクラッシュします。

ベストアンサー

* .traineddataはtess 3.xの言語データです。 tesseract-2.00.eng.tarのような2.xのものが必要です.gz

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です