我正在使用Tesseract OCR(通过pytesser)和PIL(Python图像库)来自动测试应用程序。
我正在通过制作屏幕截图并通过tesseract获取文本来检查显示的文本是否正常。
我在开始时遇到了一些问题,因为我通过PIL的双三次插值增加了屏幕截图的大小,所以它看起来效果更好。
不幸的是,我仍然有一些错误,比如“0”和“O”之间的混淆。我可以想象将来会有其他类似的问题。
我想知道是否有一些技术来准备图像以帮助OCR。任何想法都受到欢迎。
提前致谢
答案 0 :(得分:1)
无耻插件和免责声明:my company将Tesseract打包用于.NET
Tesseract是一款OK OCR引擎。它可能会错过很多并且很容易被非文本混淆。你可以做的最好的事情是确保它只获得文本。接下来最好的事情是给它一些明智的二值化(达到那里的自适应或动态阈值)或灰度,并让它尝试进行二值化。
答案 1 :(得分:1)
以下是一些现实世界的例子。
答案 2 :(得分:0)
为了区分0和O,一个简单的解决方案是选择区分两者的字体(例如:0在其中间有一个破折号或点)。这在您的申请中是否可以接受?
另一种解决方案是在对文本进行逐字符分析之后应用基于字典的步骤 - 将识别的文本提供给某种形式的拼写检查器或验证器以区分难以处理的字符。
例如,其他数字后跟的圆形符号最有可能为零,而后跟字母的相同符号最有可能是大写字母o。这是一个微不足道的例子,但它显示了如何制作更可靠的OCR系统所需的上下文。
答案 3 :(得分:0)
即使在最佳条件下,OCR变体也会偷偷摸摸。您最好的选择是设计测试以了解它们。