我已经从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);


但是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.


谢谢你提前

最佳答案

我看到此错误的最常见原因是.NET应用程序是作为X86构建的,并且您包含了x64程序集,反之亦然。

检查Visual Studio(“构建”菜单)中的配置管理器以及程序集的期望。

更新资料

根据此论坛帖子,您正在使用的DLL是x86程序集:https://code.google.com/p/tesseractdotnet/issues/detail?id=16(除非此后他们创建了x64版本)

在这种情况下,将您的应用程序设置为x86。如果您尚无此功能,请进入配置管理器(“构建”菜单),然后将“平台”设置为x86。如果它不在菜单中,则可以编辑现有条目,也可以通过在下拉菜单中选择该选项来创建一个新条目。如果选择新的:在对话框中,选择新平台为x86,然后从当前使用的设置中复制设置。

关于c# - C#中的BadImageFormatException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18418150/

10-13 07:56