如何仅在 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# 中捕获数字的主要内容,如果未能解决你的问题,请参考以下文章