对图片验证码的识别

使用pytesseract模块
安装pytesseract模块 pip install --user pytesseract
安装 首先安装Tesseract-OCR 链接在这里
安装完毕后添加环境变量
如果添加环境变量后出现路径可能是错误的
第一中解决方案 将删除这个文件然后重新创建
第二种解决方案 将Tesseract-OCR 文件夹中的tessdata文件里面的文件全部挪到Tesseract-OCR

import pytesseract
from PIL import Image

# 这一句也可以不写  但是要在pytesseract.py文件中将tesseract_cmd = 'tesseract'替换成你的路径
tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'

image = Image.open('code,png')
# 很多地方的图片验证码直接识别的话最后的识别结构是一个空的字符串  
# 所以要将图片进行二值化

#首先先将图片进行灰度化
image = image.convert('L')

# 设置一个阈值   
threshold = 150
table = []
# 因为像素的点数是0~255  0是黑  1是白
# 设置阈值的作用就是 如果‘颜色’是150之前的全部变成黑色  150之后的全部变成白色
for i in range(256):
    if i < threshold:
        table.append(0)
    else:
        table.append(1)
 
# 把图片中的像素替换  ‘1’代表二值化
image = image.point(table,'1')

# 然后就是识别了
pytesseract.image_to_string(image)

你可能感兴趣的:(对图片验证码的识别)