2

Hereからtesseractをダウンロードしました。Visual Studio 2012 に dll ファイルを追加しようとすると、有効なアセンブリではないというエラーが表示されます。ocr とサンプル コーディングの他の dll ファイルを教えてください。私は多くのウェブサイトを試しましたが、良いものは見つかりませんでした。次に、このdllファイルtessrectを見つけて、次のコードを使用しました

string path = @"C:\pic\mytext.jpg";
Bitmap image = new Bitmap(path);
Tesseract ocr = new Tesseract();
ocr.SetVariable("tessedit_char_whitelist", "0123456789"); // If digit only
ocr.Init(@"C:\tessdata\", "eng", false); // To use correct tessdata
List<tessnet2.Word> result = ocr.DoOCR(image, Rectangle.Empty);
foreach (tessnet2.Word word in result)
Console.WriteLine("{0} : {1}", word.Confidence, word.Text);

しかし、Visual Studio は有効なアセンブリではないというエラーをスローします。誰でもこれで私を助けることができます...編集:エラーは

Could not load file or assembly 'tessnet2_64, Version=2.0.4.0, Culture=neutral,      PublicKeyToken=1550524b5ba07e29' or one of its dependencies. An attempt was made to load a program with an incorrect format.

ありがとうn事前

4

2 に答える 2

3

このエラーの最も一般的な理由は、.NET アプリが X86 としてビルドされ、x64 アセンブリが含まれていること、またはその逆です。

Visual Studio ([ビルド] メニュー) の構成マネージャーと、アセンブリが期待するものを確認してください。

アップデート

このフォーラムの投稿によると、使用している DLL は x86 アセンブリです: https://code.google.com/p/tesseractdotnet/issues/detail?id=16 (それ以降に x64 バージョンを作成していない限り)

その場合は、アプリケーションを x86 に設定してください。これをまだ利用できない場合は、構成マネージャー ([ビルド] メニュー) に移動し、プラットフォームを に設定しますx86。メニューにない場合は、既存のエントリを編集するか、ドロップダウンでそのオプションを選択して新しいエントリを作成できます。新規を選択した場合: ダイアログで、新しいプラットフォームを選択し、x86現在使用していたものから設定をコピーします。

于 2013-08-24T11:54:26.670 に答える
1

私の場合、64 ビット プロジェクトで 32 ビット プロジェクト (DLL) を参照したときに、このエラーが発生しました。できれば 32 ビットを使用するには、プロジェクト構成でターゲット プラットフォームを変更する必要がありました。

画像:

写真

32ビットの設定を確認したところ、問題は解決しました。

于 2019-08-09T14:18:19.043 に答える