我正在运行的问题是从图像中提取文本,为此我使用了 Tesseract v3.02。我必须从中提取文本的示例图像与仪表读数有关。其中一些具有实心纸背景,其中一些具有 LED 显示屏。我已经为实体表背景训练了数据集,结果有些有效。
我现在遇到的主要问题是带有 LED/LCD 背景的文本图像,Tesseract 无法识别,因此没有生成训练集。
任何人都可以指导我如何将 Tesseract 与七段显示器(LCD/LED 背景)一起使用,或者我可以使用其他替代方法来代替 Tesseract。
我正在运行的问题是从图像中提取文本,为此我使用了 Tesseract v3.02。我必须从中提取文本的示例图像与仪表读数有关。其中一些具有实心纸背景,其中一些具有 LED 显示屏。我已经为实体表背景训练了数据集,结果有些有效。
我现在遇到的主要问题是带有 LED/LCD 背景的文本图像,Tesseract 无法识别,因此没有生成训练集。
任何人都可以指导我如何将 Tesseract 与七段显示器(LCD/LED 背景)一起使用,或者我可以使用其他替代方法来代替 Tesseract。
https://github.com/upupnaway/digital-display-character-rec/blob/master/digital_display_ocr.py
使用 openCV 和 tesseract 以及“letsgodigital”训练数据做到这一点
- 步骤包括边缘检测和使用最大轮廓提取显示。然后使用 otsu 或二值化阈值图像并将其传递给 pytesseracts image_to_string 函数。
这似乎是一个图像预处理任务。Tesseract 真的希望它的图像都是位图格式的黑白文本。如果你给它一些不是那样的东西,它会尽力将它转换为那种格式。如何做到这一点并不是很聪明。使用一些图像处理工具(我碰巧喜欢 imagemagick),您需要使图像更符合 tesseract 的要求。一个简单的第一步可能是做一个小半径高斯模糊,阈值非常低(你试图只保留黑色,所以 15% 看起来是正确的),然后反转图像。
然后,困难的部分变成知道要执行哪个预处理任务。如果您有元数据告诉您正在处理哪种显示,那就太好了。如果不是,我怀疑您可以查看图像颜色直方图,以至少确定您的文本是黑底白字还是黑底白字。如果只有这些场景,黑底白字总是纯色背景,而黑底白字总是七段显示,那么你就完成了。如果没有,你就必须聪明。祝你好运,请告诉我们你的想法。