Tesseract 3(OCR) – .NET Wrapper

http://code.google.com/p/tesseractdotnet/

我在使用Tesseract在Visual Studio 2010项目中工作时遇到问题。 我尝试过控制台和winforms,两者都有相同的结果。 我曾经遇到过其他声称让它在VS2010工作的人遇到的dll:

http://code.google.com/p/tesseractdotnet/issues/detail?id=1

我正在添加对dll的引用,可以在上面的网站附件64中找到。 每次我构建我的项目时,我都会收到一个AccessViolationException ,表示尝试读取或写入受保护的内存。

 public void StartOCR() { const string language = "eng"; const string TessractData = @"C:\Users\Joe\Desktop\tessdata\"; using (TesseractProcessor processor = new TesseractProcessor()) { using (Bitmap bmp = Bitmap.FromFile(fileName) as Bitmap) { if (processor.Init(TessractData, language, (int)eOcrEngineMode.OEM_DEFAULT)) { string text = processor.Recognize(bmp); } } } } 

访问冲突exception总是指向if (processor.Init(TessractData, language, (int)eOcrEngineMode.OEM_DEFAULT)) 。 我已经看到一些建议,以确保解决方案平台在配置管理器中设置为x86 ,并且tessdata文件夹位置以尾随斜杠结束,但无济于事。 有任何想法吗?

它似乎是导致问题的tessdata文件夹的内容。 从第一个链接获取tessdata文件夹,现在全部正在运行。

我刚刚完成了一个带有tesseract引擎3的项目。我认为,引擎中存在一个错误,需要纠正。 我删除“AccessViolationError”的做法是,将“\ tessdata”添加到真正的tessdata目录字符串中。 我不知道为什么,但引擎似乎截断了Tessdata路径中最里面的目录。

刚刚制作完整的OCR包(Dlls + Tessdata(英文)),与.net框架4一起使用。

如果有人有相同的问题,并且尾随斜杠的建议不起作用,请尝试…两个结束斜杠! Seriosly。 这个对我有用。

 if (processor.Init(@".\tessdata\\", "eng", (int)eOcrEngineMode.OEM_DEFAULT)) 

似乎你的问题与这里提到的稳定性问题有关。 在官方网站上 ,建议使用之前的稳定版本2.4.1。 您可以通过package manager命令从nuget.org安装它: Install-Package Tesseract -Version 2.4.1