我使用PyTesser
和Tesseract
学习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%的情况下,结果是不正确的。
我不熟悉成像处理。我在这里有两个问题:
是否可以告诉PyTesser
仅猜数字?
我认为图像很容易让人阅读。如果PyTesser
难以读取仅数字图像,有没有其他选择可以做更好的OCR?
非常感谢任何提示。
答案 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')