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