我在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);有谁有主意吗?
感谢!
发布于 2012-02-26 20:10:40
对于所有这些之后仍然有问题的人,请确保如果您使用的是tessnet2,请确保下载了正确的语言文件。
您需要Tesseract (2.00及更高版本)的英语语言数据,而不是Tesseract 3.01版本的英语语言数据。我希望这能为您节省几个小时!:)
发布于 2010-10-28 03:09:11
对于那些试图在C#中为Tesseract OCR引擎使用Tessnet2程序集的人,以及遇到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)时,可能已经创建了一些可疑的条目。
当我删除这些条目并重新启动时(我在删除注册表项之前曾尝试重新启动,仅供参考),一切都再次正常工作。
是否是注册表项导致了问题?谁知道呢。但它确实解决了我的问题。
发布于 2010-01-13 09:12:35
“项目+属性”,“调试”选项卡,向下滚动,勾选“启用非托管代码调试”复选框。现在您可以设置断点并对其进行调试。
如果您的集成开发环境不支持混合模式调试,则可以使用this post中概述的技术附加一个调试器。
https://stackoverflow.com/questions/2053575
复制相似问题