正方体 3 (OCR) - .NET 包装器
Posted
技术标签:
【中文标题】正方体 3 (OCR) - .NET 包装器【英文标题】:Tesseract 3 (OCR) - .NET Wrapper 【发布时间】:2012-04-21 11:01:58 【问题描述】: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 Tes-s-ractData = @"C:\Users\Joe\Desktop\tessdata\";
using (TesseractProcessor processor = new TesseractProcessor())
using (Bitmap bmp = Bitmap.FromFile(fileName) as Bitmap)
if (processor.Init(Tes-s-ractData, language, (int)eOcrEngineMode.OEM_DEFAULT))
string text = processor.Recognize(bmp);
访问冲突异常总是指向if (processor.Init(Tes-s-ractData, language, (int)eOcrEngineMode.OEM_DEFAULT))
。我已经看到了一些建议,以确保解决方案平台在配置管理器中设置为 x86
,并且 tessdata 文件夹位置以斜杠结尾,但无济于事。有什么想法吗?
【问题讨论】:
你能分享你的完整实现吗?我想我正在阅读有关如何设置的相互矛盾的说明。 无法获得荣誉,但这对我有用:将 tessdata 文件夹中的 'eng.traineddata' 替换为 code.google.com/p/tesseract-ocr/downloads/… 【参考方案1】:您的问题似乎与here 提到的稳定性问题有关。在官方site 上,建议使用以前的稳定版本 2.4.1。您可以通过包管理器命令从 nuget.org 安装它:Install-Package Tesseract -Version 2.4.1
【讨论】:
【参考方案2】:如果有人遇到同样的问题,并且斜杠的建议不起作用,请尝试... 两个斜杠结尾!认真的。它对我有用。
if (processor.Init(@".\tessdata\\", "eng", (int)eOcrEngineMode.OEM_DEFAULT))
【讨论】:
【参考方案3】:似乎是导致问题的 tessdata 文件夹的内容。从第一个链接获取 tessdata 文件夹,现在一切正常。
【讨论】:
【参考方案4】:我刚刚完成了一个使用 tesseract 引擎 3 的项目。我认为引擎中存在一个错误,需要纠正。我删除“AccessViolationError”的方法是将“\tessdata”添加到真正的 tessdata 目录字符串中。我不知道为什么,但引擎似乎正在截断 Tessdata 路径中最内层的目录。
刚刚制作了适用于 .net framework 4 的完整 OCR 包 (Dlls+Tessdata(english))。
【讨论】:
真的!文件夹位于“e:\tessdata”,变量定义为const string tes-s-ractData = @"e:\tessdata\tessdata";
以上是关于正方体 3 (OCR) - .NET 包装器的主要内容,如果未能解决你的问题,请参考以下文章