正方体 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 包装器的主要内容,如果未能解决你的问题,请参考以下文章

正方体 3.02.02 崩溃 JRE

正方体 OCR 相机

正方体 OCR 到 PAGE

Tesseract ocr PDF 作为输入

NamedPipeServerStream/NamedPipeClientStream 包装器

用于 php 的 OCR 包装器