如何仅在 Tesseract C# 中捕获数字

Posted

技术标签:

【中文标题】如何仅在 Tesseract C# 中捕获数字【英文标题】:How to capture digits only in Tesseract C# 【发布时间】:2020-01-28 06:36:57 【问题描述】:

我正在使用控制台应用程序和非常基本的 Tesseract 来执行数字识别。我从谷歌复制了一张图片,并试图只找到数字。

Bitmap image = new Bitmap("1.png");
TesseractEngine t = new TesseractEngine("./tessdata", "eng", EngineMode.Default);
t.SetVariable("tessedit_char_whitelist", "01234567890");
var r = t.Process(image, PageSegMode.SingleBlock);
Console.WriteLine("Result: " + r.GetText());
Console.ReadLine();

图片是 结果因pageSegMode而异,但没有一个接近图像。 使用 Tesseract 从此类图片中识别数字的最佳方法是什么?

【问题讨论】:

【参考方案1】:

Tesseract 不能很好地处理这样的图像,除非您以某种方式专门针对这种情况进行训练,但如果您可以正确转换图像,我认为您不必这样做

你的目标应该是给它一个黑色数字和白色背景的黑白图片,你应该在 OCRing 图像之前做这个处理,有很多库,大多数人使用 OpenCV。

Tesseract 已经做了一些图像处理,但它不是很好,而且可能对这样的图像没有多大帮助。您可以使用tessedit_write_images 查看自动处理的结果,以了解实际的 OCRed。

这里有一些有用的链接:

https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality#image-processing

Using tesseract to recognize license plates

【讨论】:

以上是关于如何仅在 Tesseract C# 中捕获数字的主要内容,如果未能解决你的问题,请参考以下文章

如何提高 tesseract 识别数字的结果

如何使用python从图像中提取文本或数字

如何使用tesseract ocr仅在图像中提取蓝色文本

c# Naudio 音频电平捕获和显示,仅在打开录音属性时有效

如何在 C# 中读取正则表达式捕获

C# - 如何使用 Tesseract 3.0 Wrapper 获取每个字符的边界框?