用pytesser识别简单的数字

时间:2014-06-16 16:02:22

标签: python python-imaging-library ocr pytesser

我使用PyTesserTesseract学习OCR。作为第一个里程碑,我想写一个工具来识别只包含一些数字的验证码。我阅读了一些教程并编写了这样一个测试程序。

from pytesser.pytesser import *
from PIL import Image, ImageFilter, ImageEnhance

im = Image.open("test.tiff")
im = im.filter(ImageFilter.MedianFilter())
enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(2)
im = im.convert('1')
text = image_to_string(im)
print "text={}".format(text)

我用下面的图片测试了我的代码。但结果是2(T?770。我也测试了一些其他类似的图像,在80%的情况下,结果是不正确的。

enter image description here

我不熟悉成像处理。我在这里有两个问题:

  1. 是否可以告诉PyTesser仅猜数字?

  2. 我认为图像很容易让人阅读。如果PyTesser难以读取仅数字图像,有没有其他选择可以做更好的OCR?

  3. 非常感谢任何提示。

1 个答案:

答案 0 :(得分:1)

我认为您的代码非常好。它可以识别207770。问题出在pytesser安装。 Tesseract中的pytesser已过期。您将下载最新版本并覆盖相应的文件。您还可以修改pytesser.py并更改

tesseract_exe_name = 'tesseract'

import os.path
tesseract_exe_name = os.path.join(os.path.dirname(__file__), 'tesseract')