Tessnet2(Tesseract)没有返回正确的结果 - 改善输出的方法

时间:2016-03-31 10:13:54

标签: c# image ocr tesseract tessnet2

我在下面的图片中使用C#中的tessnet2(tesseract-ocr):

Sample text image

这是我的代码:

var image = new Bitmap(@"D:\anuj\a2.jpg");
ocr.Init(@"D:\anuj\OCRTest\tessdata", "eng", false);
var result = ocr.DoOCR(image, Rectangle.Empty);
foreach (Word word in result)
    Console.Write("{0} ", word.Text);                    
Console.ReadLine();

给出输出: Icurumcretz j

有什么方法可以获得正确的结果文本,因为样本图像非常清晰,分辨率很高,但仍未提供正确的文本。需要定义哪些参数才能获得正确的结果。请回复。

1 个答案:

答案 0 :(得分:0)

您应该尝试对图像进行一些图像处理,以提高tesseract的输出效果。 OpenCV(EmguCV for C#我认为)库可以帮助你做一些图像处理方法。我在图像上使用了一个小的中值Blur来减少噪音并从中制作出二进制图像。

Segmented Image

使用tesseract测试此图像会给我以下输出: laurumoretz 以及下一行的一些乱码,因为我没有删除小blob(带有phonenumbers的贴纸中的字符)。所以它一个接一个,但我没有使用修正来使文字看起来完全是直线的。

我希望这会给你一些关于如何改善tesseract-ocr输出的想法。