在屏幕截图中识别字符的最佳方式?

Tom*_*mek 20 ocr fonts tesseract pattern-recognition

您会建议从屏幕截图中识别所有字符?屏幕截图非常清晰(白色背景上只有黑色文字),我也可以为文本选择任何starndard字体(安装在Windows上).我尝试了一些OCR方式(Tesseract等),但它在识别某些字符方面犯了错误(这让我感到困惑,因为文本没有丝毫噪音,字体是最常见的字体 - Courier New,Fixedsys等),我需要它100%准确.是否有一些库可用于此特定目的,某些模式识别或其他什么?或者我应该使用一些等宽字体获取屏幕截图,并迭代通过图像移动到右+ font_size像素,然后比较捕获的东西与字母的内存表示和相同大小的相同字体的数量?解决这个问题的最佳方法是什么?非常感谢你提前.

更新:我终于通过使用monospaced字体(Courier New)训练Tesseract,以我所截取的精确尺寸设法获得100%的准确率.希望将来帮助某人:)

bla*_*ade 10

由于这是谷歌的第一个结果tesseract recognize screenshot,让我做一些神秘的事情并添加一个更简单的解决方案.

Tesseract预计图像大约为300 dpi或更高,Windows的标准dpi为96.这意味着您需要将图像重新缩放到300%.之后,结果显着改善.

100%
1倍规模
结果: Whal would you recommend for recognizing all characters from a screensnor 7

200%
2倍规模
结果: What would you recommend for recognizing all chamcters from a screenth ?

300%
3倍规模
结果: What would you recommend for recognizing all characters from a screenshot ?

300%以上的任何东西都可以.

  • 我很惊讶它的效果如何.我抓到的大部分屏幕截图都是低分辨率,在Photoshop中将它们吹到300*ppi*,或者确保尺寸更大(最小尺寸大约4000px)时,准确度会提高.荣誉.我使用的另一个技巧是将字符白名单限制为常用字母(`tessedit_char_whitelist 0123456789 - .()qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM`) (2认同)

dai*_*ain 0

您可以选择在操作系统级别更改文本抗锯齿功能吗?使用这些设置(或者甚至尝试将其关闭)也可能会给您现有的 OCR 带来更好的结果。