设计一个专门用于渲染文本的开源OCR引擎(截图)

时间:2010-12-27 05:26:33

标签: python screen-scraping ocr

因此,我目前的个人项目是能够自动从游戏中截取屏幕截图,OCR文本,并计算给定单词的出现次数。

整晚都在寻找不同的OCR解决方案,我逐渐意识到大多数OCR包都是为扫描文本而设计的。如果有任何软件包可以可靠地读取屏幕文本,那么它们远远超出了这个业余爱好者的预算。

我一直在阅读其他一些问题,而我发现的最接近的是OCR engines designed for screen-reading

在我看来,阅读渲染文本应该比打印和扫描文本容易得多。线条总是直的,任何给定的字母总是会出现完全相同的像素表示(大多数情况下,无论如何)。另外,为什么不使用实际的字体文件(如果你有的话)作为识别字符的备忘单?对于这样的系统,我们实际上可能达到100%的准确率。

假设你有一个备忘单的字体文件,你的源图像是完全正方形且没有噪音,你会如何从屏幕上识别字符?

(我可以预见的问题是ui线和图像可能会混淆任何粗略的像素猜测尝试。)

如果您已经知道用于屏幕阅读的免费/开源OCR包,请告诉我们。我有点怀疑它会出现,因为没有其他的问题似乎也得到了领先。

首选Python界面,但乞丐不能选择。

编辑:
为了澄清,我正在寻找专门设计用于从屏幕截图中读取文本的OCR解决方案的设计建议。像tesseract这样的流行工具(我在链接的问题中提到)很难使用,因为它们不是为这种源文件设计的。

3 个答案:

答案 0 :(得分:2)

所以我一直在思考它,我觉得最好的方法是计算每个blob /字形/字符中的像素数。这应该真正减少我需要做的区分字形之间的测试次数。

遗憾的是,我必须对字体非常具体。该软件只能识别正确的dpi字体,正确的字体和重量等。

这不太理想,我仍然希望看到有更多关于这个东西的人为渲染文本设计OCR;但它适用于我有限的案例。

答案 1 :(得分:1)

如果你的目标是计算游戏中某些事件的发生次数,那么OCR真的不是正确的方法。也就是说,如果您决定使用OCR,那么tesseract-OCR是一个众所周知的开源软件包,用于执行光学字符识别。我不确定你对扫描文本和渲染文本的看法是什么,但tesseract可能会像任何可用的开源软件包那样做得很好。 OCR仍然是一个棘手的艺术,所以我不希望100%准确。

答案 2 :(得分:0)

这不完全是您想要的,但您可能需要查看Sikuli