tessnet2无法加载

我正在使用Windows XP上的Tesseract 2.04 Source的tessnet2包装器,将其配置为与x86一起使用。

TessarctTest项目的主要function包括:

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 r1 = ocr.DoOCR(bmp, new Rectangle(792, 247, 130, 54)); List 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); 

有谁有想法?

欣赏!

对于仍然遇到问题的人,请确保您使用tessnet2下载正确的语言文件

您需要Tesseract(2.00及以上)英语语言数据,而不是Tesseract 3.01版本的英语语言数据 。 我希望这可以节省你几个小时! 🙂

对于那些试图在C#中使用Tessnet2程序集用于Tesseract OCR引擎并且遇到Tesseract.Init()方法导致应用程序崩溃的问题的人 – 我发现了一个可能的原因。

首先,我假设你有如下文件:

 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条目之前尝试重新启动,FYI),一切都恢复了。

注册表项是否导致问题? 谁知道。 但它确实解决了我的问题。

单击项目+属性,调试选项卡,向下滚动,勾选“启用非托管代码调试”复选框。 现在您可以设置断点并对其进行调试。


如果您的IDE不支持混合模式调试,则可以使用本文中概述的技术附加调试器。

确保您的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。

就我而言,dkr88的答案完成了这项工作,非常感谢。 我认为当tesseract作为独立安装之前有一些依赖性损坏。 此外,OCR质量似乎比MODI更好,尽管后者的倾斜校正在更极端的环境下工作(垂直文本)。

我现在对tessnet2非常满意。 只有一个缺点:我需要更改我的app.config(如互联网上所述)并添加以下内容:

    

我的问题是我没有运行具有管理员权限的应用程序。

当我右键单击运行并选择本地管理员时,它工作。

在我的情况下,我做了以下更改,以使其工作:)

  1. 已下载https://tesseract-ocr.googlecode.com/files/tesseract-2.00.eng.tar.gz
  2. tessdata文件夹粘贴到我的Debug文件夹中
  3. 并做了以下代码更改

ocr.Init("D:\MyApplication\MyApplication\Debug", "eng", false);

ocr.Init(null, "eng", false);