我在下面的图片中使用C#中的tessnet2(tesseract-ocr):
这是我的代码:
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
有什么方法可以获得正确的结果文本,因为样本图像非常清晰,分辨率很高,但仍未提供正确的文本。需要定义哪些参数才能获得正确的结果。请回复。
答案 0 :(得分:0)
您应该尝试对图像进行一些图像处理,以提高tesseract的输出效果。 OpenCV(EmguCV for C#我认为)库可以帮助你做一些图像处理方法。我在图像上使用了一个小的中值Blur来减少噪音并从中制作出二进制图像。
使用tesseract测试此图像会给我以下输出: laurumoretz 以及下一行的一些乱码,因为我没有删除小blob(带有phonenumbers的贴纸中的字符)。所以它一个接一个,但我没有使用修正来使文字看起来完全是直线的。
我希望这会给你一些关于如何改善tesseract-ocr输出的想法。