0

我在下图中的 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

有什么方法可以获得正确的结果文本作为示例图像非常清晰且具有良好的分辨率,但仍然没有给出正确的文本。需要定义哪些参数才能获得正确的结果。请回复。

4

1 回答 1

0

您应该尝试对图像进行一些图像处理,以改善 tesseract 的输出。OpenCV(我认为 C# 的 EmguCV)库可以帮助您执行其中一些图像处理方法。我在图像上使用了一个小的 medianBlur 来减少噪声并从中制作出二进制图像。

分割图像

用 tesseract 测试这个图像给了我以下输出:laurumoretz和下一行的一些乱码,因为我没有删除小斑点(带有电话号码的贴纸中的字符)。所以它偏离了一个,但我没有使用更正来使文本看起来完全是线性的。

我希望这能让您对如何改进 tesseract-ocr 的输出有所了解。

于 2016-04-01T13:40:06.447 回答