验证码识别

爬虫有时候遇到验证码识别,试了一下,简单纯数字的识别率还是很高的。先要在电脑安装tesseractOCR软件,然后调用pytesseract库就可以了。

from PIL import Image
import pytesseract



im=Image.open('a.jpg')
gray=im.convert('L')#图像灰度化
threshold=150
table=[]
#图像二值化,就是大于阈值的变成1,小鱼阈值的变成0
for i in range(256):
    if i<threshold:
        table.append(0)
    else:
        table.append(1)
out=gray.point(table,'1')
out.save('cap.jpg')
#指定识别软件路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
tessdata_dir = '--tessdata-dir "C:\\Program Files\\Tesseract-OCR\\tessdata"'
th=Image.open('cap.jpg')
print(pytesseract.image_to_string(th,lang='eng', config=tessdata_dir))