6

我正在尝试从屏幕截图中检测一些大写字符。我使用 PIL 将其转换为黑白,然后使用 PyTesser 页面中的代码示例,在图像上运行 tesser.exe:

from pytesser import *
image = Image.open('fnord.tif') 
print image_to_string(image)     

我正在使用这张图片:http://i.imgur.com/so419.png

但它不承认它是一个 E,或者真的是什么。我认为这是一个足够干净的捕获?顶部的噪音不会把它扔掉,对吧?

有什么我想念的吗?

4

1 回答 1

1

如果您担心噪点是否存在问题,请手动在 MSPaint 或类似工具中打开图像,去除噪点,然后通过 OCR 运行新图像。这是了解 OCR 引擎如何工作以及混淆它和不混淆的最佳方式。每个 OCR 引擎的工作方式都不同。

在这种情况下,可能是一点点噪音也会混淆字符分区过程。您应该检查从 OCR 引擎返回的边界框值,以查看 OCR 引擎是否甚至在正确的位置查找您的单词或字符。

一些 OCR 引擎具有在 OCR 过程中从图像中去除噪声的选项。这通常称为去斑或去噪。可以使用 Leptonica ( http://www.leptonica.org ) 去除噪音,它现在是最新的 Tesseract 图像的一部分。

屏幕字体对 OCR 引擎提出了很大的挑战,因为 DPI 通常非常低。在您的“E”的情况下,应该有足够多的像素被识别。沉重的冲程重量可能会使发动机感到困惑。

此外,商业引擎通常会比 Tesseract 更准确,但也会带来昂贵的许可费用。

于 2012-09-19T08:27:35.157 回答