10

我有这张图片:

替代文字

我想用 python 把它读成一个字符串,我认为这并不难。我遇到了 tesseract,然后是使用 tesseract 的 python 脚本包装器。

所以我开始阅读图片,在我尝试阅读这张图片之前,它做得很好。我是否必须训练它来阅读该特定字体?关于该特定字体的任何想法?或者有没有更好的 ocr 引擎可以与 python 一起使用来完成这项工作。

编辑:也许我可以围绕数字制作某种矢量,然后以更大的尺寸重新绘制它们?更大的图像是更好的 tesseract ocr 似乎阅读它们(不足为奇,哈哈)。

4

5 回答 5

11

只需训练 10 位数字和一个“。”的引擎。. 那应该这样做。并确保在 OCRing 之前将图像更改为灰度。

于 2009-11-19T14:51:37.147 回答
5

培训很难,并不是这里真正需要的。无论脚本如何,O 和 0 以及 l 和 1 之间的区别都会很困难。如果上下文允许,将 OCR 限制为仅在数字之间进行选择可以大大简化问题。

我对 tesseract 的兴趣在于处理大量来自旧政府报告的数字。在这种情况下和所讨论的情况下,字符集将类似于“0123456789”。在 tesseract 的旧(sourceforge)新闻组中发表评论后,eric_taj 在 2007-03-21 上发表了评论,您可以修改分类/intproto.cpp 中的 Templates->IndexFor 和 Templates->ClassIdFor 以屏蔽不允许的字符. 我稍微修改了该方法以在运行时在环境变量中读取允许的字符集,以便我可以即时调整允许的集。

于 2010-04-27T04:23:54.203 回答
1

最近tesseract OCR 讨论组中关于这个话题的流量很大。您将需要使用仅包含数字的“语言”。很多人以前都这样训练过引擎。看起来您正试图智取验证码数据保护方案……啧啧啧。

于 2009-11-19T15:55:05.837 回答
0

这看起来像 Eurostile 字体。是的,您必须使用源图像中使用的每种不同字体进行训练。

于 2009-11-19T11:34:06.500 回答
0

通用 OCR 可能难以识别小屏幕字体,该 OCR 已针对读取从纸上扫描的大型平滑字体进行了优化。

你最好试试像 Textract SDK这样的特殊截图 OCR 。它将收集所有本地字体并通过简单地匹配字符来提供 100% 的精确识别。

于 2013-09-06T02:48:29.887 回答