2

我已经从Here下载了 tesseract 。当我尝试将 dll 文件添加到 Visual Studio 2012 时,它显示的错误是它不是一个有效的程序集。谁能建议我一些其他的 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);

但是视觉工作室抛出错误,它不是有效的程序集。任何人都可以帮助我...编辑:错误是

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 回答