Tessnet2使用Tesseract引擎 - 为什么它会产生非常糟糕的输出?

时间:2015-01-03 11:36:11

标签: c# ocr tesseract tessnet2

我正在尝试在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": enter image description here

这是此图像的Tessnet2输出: enter image description here

我一直在使用这个网站来学习使用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

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

我到处寻找可以提高准确性的解决方案,我找到了许多帖子和有类似问题的人,但没有可行的解决方案。

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

我是这个主题的初学者,所以如果解决方案过于简单,请耐心等待。

谢谢!

1 个答案:

答案 0 :(得分:3)

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

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

为:

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