pytesser 的成功率低?这是噪音问题,还是需要做其他事情?
Posted
技术标签:
【中文标题】pytesser 的成功率低?这是噪音问题,还是需要做其他事情?【英文标题】:Low success rate with pytesser? Is this an issue of noise, or is there something else that needs to be done? 【发布时间】:2012-08-09 01:14:04 【问题描述】:我正在尝试从屏幕截图中检测几个大写字符。我使用 PIL 将其转换为黑白,然后使用 PyTesser 页面中的代码示例,在图像上运行 tesser.exe:
from pytesser import *
image = Image.open('fnord.tif')
print image_to_string(image)
我正在使用这张图片:
但它不会将其识别为 E,或者其他任何东西。我认为这是一个足够干净的捕获?顶部的噪音不会把它扔掉,对吧?
我有什么遗漏吗?
【问题讨论】:
我已经运行了显示Tesseract Open Source OCR Engine v3.02 with Leptonica
的命令行工具——没有psm
选项——我得到一个空文件。使用 -psm 10
这应该是“将图像视为单个字符” - 我得到 %
后跟两个换行符......
Limiting the characters tesseract looks for 过去帮助过我。
如果您尝试识别的大写字符采用独特的字体类型,如问题所示,那么没有太多理由依赖 tesseract。一些简单的拓扑特征和骨架信息可以直接解决这个问题。
【参考方案1】:
如果您担心噪点是否存在问题,请在 MSPaint 或类似工具中手动打开图像,去除噪点,然后通过 OCR 运行新图像。这是了解 OCR 引擎如何工作以及混淆它和不混淆的最佳方式。每个 OCR 引擎的工作方式都不同。
在这种情况下,也可能是少量的噪音也会混淆字符分区过程。您应该检查从 OCR 引擎返回的边界框值,以查看 OCR 引擎是否甚至在正确的位置查找您的单词或字符。
一些 OCR 引擎可以选择在 OCR 过程中去除图像中的噪点。这通常称为去斑或去噪。可以使用 Leptonica (http://www.leptonica.org) 去除噪音,它现在是最新的 Tesseract 图像的一部分。
屏幕字体对 OCR 引擎提出了很大的挑战,因为 DPI 通常非常低。在您的“E”的情况下,应该有足够多的像素被识别。沉重的冲程重量可能会使发动机感到困惑。
此外,商业引擎通常比 Tesseract 更准确,但也会带来昂贵的许可费用。
【讨论】:
以上是关于pytesser 的成功率低?这是噪音问题,还是需要做其他事情?的主要内容,如果未能解决你的问题,请参考以下文章
OSError: [Errno 2] No such file or directory using pytesser