21

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

我在让 Tesseract 在我的 Visual Studio 2010 项目中工作时遇到问题。我试过控制台和winforms,结果都一样。我遇到了一个声称可以使用它的其他人的 dll VS2010

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);
            }
        }
    }
}

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

4

4 回答 4

7

似乎是导致问题的 tessdata 文件夹的内容。从第一个链接获得 tessdata 文件夹,现在一切正常。

于 2012-07-31T15:06:07.557 回答
2

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

刚刚制作了适用于 .net 框架 4 的完整 OCR 包 (Dlls+Tessdata(english))。

于 2012-07-15T17:57:03.810 回答
0

如果有人有同样的问题,并且斜杠的建议不起作用,请尝试......两个结尾的斜杠!认真的。这个对我有用。

if (processor.Init(@".\tessdata\\", "eng", (int)eOcrEngineMode.OEM_DEFAULT))
于 2014-10-31T15:05:51.550 回答
0

似乎您的问题与此处提到的稳定性问题有关。官方网站上建议使用以前的稳定版本 2.4.1。您可以通过包管理器命令从 nuget.org 安装它:Install-Package Tesseract -Version 2.4.1

于 2016-02-12T20:36:40.083 回答