15

Windows XP で Tesseract 2.04 ソースに tessnet2 ラッパーを使用しており、x86 で動作するように構成されています。

TessarctTest プロジェクトのメイン関数には以下が含まれます。

        Bitmap bmp = new Bitmap(@"C:\temp\New Folder\dotnet\eurotext.tif");
        tessnet2.Tesseract ocr = new tessnet2.Tesseract();
        // ocr.SetVariable("tessedit_char_whitelist", "0123456789");
        ocr.Init(@"C:\temp\tessdata", "eng", false);
        // List<tessnet2.Word> r1 = ocr.DoOCR(bmp, new Rectangle(792, 247, 130, 54));
        List<tessnet2.Word> r1 = ocr.DoOCR(bmp, Rectangle.Empty);
        int lc = tessnet2.Tesseract.LineCount(r1);

プログラムを実行しようとすると、ocr.Init 内の次の行でクラッシュします。

int result = m_myTessBaseAPIInstance->InitWithLanguage((char *)_tessdata.ToPointer(), NULL, (char *)_lang.ToPointer(), NULL, numericMode, 0, NULL);

誰にもアイデアがありますか?

感謝!

4

8 に答える 8

24

これらすべての後も問題が解決しない場合は、tessnet2 を使用している場合は、正しい言語ファイルをダウンロードしてください。

Tesseract 3.01バージョンの英語データではなく、Tesseract (2.00 以降)の英語データが必要です。これで数時間節約できることを願っています!:)

于 2012-02-26T12:10:40.427 に答える
15

C# で Tesseract OCR エンジンに Tessnet2 アセンブリを使用しようとしていて、Tesseract.Init()メソッドが原因でアプリがクラッシュするという問題に直面している人のために、考えられる原因を 1 つ見つけました。

まず、次のようなファイルがあると仮定しています。

bin\Debug\MyDotNetApp.exe
bin\Debug\tessdata\eng.DangAmbigs
bin\Debug\tessdata\eng.freq-dawg
bin\Debug\tessdata\eng.inttemp
bin\Debug\tessdata\eng.pffmtable
bin\Debug\tessdata\eng.unicharset
bin\Debug\tessdata\eng.user-words
bin\Debug\tessdata\eeng.word-dawg

そして、これを初期化に使用しています:

using (var ocr = new tessnet2.Tesseract())
{
    ocr.Init(null, "eng", false);
    ...
}

理論的にはうまくいくはずです。私にとってはうまくいきましたが、突然ではありませんでした...影響を与えるような変更は何もしていませんでしたが。

私にとっての修正は、(regedit を使用して) レジストリを検索し、tesseract へのすべての参照を削除することでした。Tesseract 3.00 インストーラー (tesseract-ocr-setup-3.00.exe) をインストールしたときに作成されたと思われる疑わしいエントリがいくつかありました。

これらのエントリを削除して再起動すると(参考までに、regエントリを削除する前に再起動を試みました)、すべてが再び機能しました。

レジストリ エントリが問題の原因でしたか? 知るか。しかし、それは私の問題を解決しました。

于 2010-10-27T19:09:10.517 に答える
3

プロジェクト + プロパティ、[デバッグ] タブを下にスクロールし、[アンマネージ コードのデバッグを有効にする] チェックボックスをオンにします。これで、ブレークポイントを設定してデバッグできます。


IDE が混合モードのデバッグをサポートしていない場合は、この記事で概説されている手法を使用してデバッガーをアタッチできます。

于 2010-01-13T01:12:35.357 に答える
1

私の場合、dkr88 からの回答でうまくいきました。どうもありがとうございました。以前にtesseractがスタンドアロンとしてインストールされたときに、いくつかの依存関係が壊れていると思います。さらに、OCR の品質は MODI よりも優れているようですが、後者の傾き補正はより極端な状況下で機能します (縦書き)。

私は今tessnet2にとても満足しています。唯一の欠点があります: app.config (インターネットで説明されているように) を変更する必要があり、以下を追加しました:

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
</startup>
于 2011-02-28T20:19:38.483 に答える
1

私の問題は、管理者権限でアプリケーションを実行していなかったことです。

run as を右クリックして Local Administrator を選択すると、機能しました。

于 2011-03-30T14:28:54.693 に答える
1

tessdata フォルダー (C:\temp\tessdata) に英語のデータ ファイルが含まれていることを確認します。ファイルは、eng.DangAmbigs、eng.freq-dawg、eng.inttemp、eng.normproto、eng.pffmtable、eng.unicharset、eng.user-words、eng.word-dawg です。tesseract ダウンロードからファイルをダウンロードします。 ダウンロードするファイルは tesseract-2.00.eng.tar.gz です。

于 2010-07-23T19:07:31.407 に答える