改造pytesseract 包,实现简单的验证码识别
原生的tesseract 对于识别验证码来说,正确率太低,我们可以对原生的tesseract进行简单的改造,以提高识别率.
使用tesseract 需要先下载安装tesseract软件,百度上可以找到资源, 下载完成后需要测试一下看是否有安装环境变量,然后再cmd中输入tesseract,出现如下结果为安装成功
重点来啦,改造原码如下
import pytesseract
from PIL import Image, ImageEnhance
#打开图片
img =Image.open('rxao.gif')
img = img.convert('RGB')
#强化处理,数值可以自己定,当然省略这个也是可以的哦
enhancer = ImageEnhance.Color(img)
enhancer = enhancer.enhance(0)
enhancer = ImageEnhance.Brightness(enhancer)
enhancer = enhancer.enhance(2)
enhancer = ImageEnhance.Contrast(enhancer)
enhancer = enhancer.enhance(8)
enhancer = ImageEnhance.Sharpness(enhancer)
img = enhancer.enhance(20)
#转为灰度图片
img = img.convert('L')
#二值化处理
threshold = 140
table = []
for i in range(256):
if i < threshold:
table.append(0)
else:
table.append(1)
out = img.point(table, '1')
#识别图片
print(pytesseract.image_to_string(img))