【问题标题】:Tessnet2 using Tesseract Engine - Why does it give very bad output?使用 Tesseract 引擎的 Tessnet2 - 为什么它会给出非常糟糕的输出?
【发布时间】:2015-01-03 11:36:10
【问题描述】:

我正在尝试在 C# 中使用 Tesseract 引擎来使用 Tessnet2。对于我提供给 Tessnet2 的许多测试图像,输出非常糟糕,几乎没有任何内容是正确的。

这是我在 C# 控制台项目 Program.cs 类中的代码:

 static void Main(string[] args)
    {
        try
        {
        Bitmap image = new Bitmap(@"C:\Users\hp\Desktop\eurotext.tif");
        var ocr = new Tesseract();

        //when I tried to add the SetVariable(...), it didn't change the output much

        ocr.Init(@"C:\Program Files (x86)\Tesseract-OCR", "eng", true);

        var result = ocr.DoOCR(image, Rectangle.Empty);
        foreach (Word word in result)
            Console.WriteLine("{0} : {1}", word.Confidence, word.Text);

        Console.ReadLine();
    }
    catch (Exception exception)
    {
        Console.WriteLine("Error");
    }
}

例如,这是一个示例(大型二进制 300 dpi)测试图像“eurotext.tif”:

这是这张图片的 Tessnet2 输出:

我一直在用这个网站学习使用Tessnet2的步骤: https://code.msdn.microsoft.com/windowsdesktop/How-to-use-Tessnet2-library-716be12f

我使用这个网站尝试正确使用 SetVariable(...) 函数来让它做我想做的事,但没有运气,输出也没有太大差异: http://www.sk-spell.sk.cx/tesseract-ocr-en

我找到了减少引擎错误的 Tesseract 指南: http://code.google.com/p/tesseract-ocr/wiki/ImproveQuality

  • 它说“Tesseract 最适合使用 DPI 至少为 300 dpi 的文本”.. 此示例图像为 300 dpi

  • 此示例图像也是二进制的,应该会提供更好的输出,正如许多人在各个网站上所建议的那样

我到处寻找可以提高准确性的解决方案,我发现很多帖子和人都有类似的问题,但没有有效的解决方案。

这个问题的原因可能是什么?我该如何解决?

我是这个主题的初学者,所以如果解决方案太琐碎,请多多包涵。

谢谢!

【问题讨论】:

  • 使用的字体(.traineddata 文件)是否与您的样本相对应?也许你可以添加一个白名单(识别哪个字符)给 Tesseract 更好的建议。

标签: c# ocr tesseract tessnet2


【解决方案1】:

要显示文本,您必须进行更改:

ocr.Init(@"C:\Program Files (x86)\Tesseract-OCR", "eng", true);

到:

ocr.Init(@"C:\Program Files (x86)\Tesseract-OCR", "eng", false);

【讨论】:

    猜你喜欢
    • 2015-04-08
    • 2015-06-01
    • 1970-01-01
    • 2022-01-14
    • 2021-05-29
    • 2016-10-09
    • 2019-11-04
    • 1970-01-01
    • 2018-07-25
    相关资源
    最近更新 更多