需要的库:
tesserocr
如下验证码:'1.bmp'
import tesserocr from PIL import Image image=Image.open('ecdhwpa6.bmp') image.show() res=tesserocr.image_to_text(image) print(res)
直接这样识别可能识别失败:如识别成:cEe7F
这时可能需要用到转灰度、二值化等操作:
import tesserocr from PIL import Image image=Image.open('ecdhwpa6.bmp')
# Image.convert('L')作用是将图片转为灰度图像
#Image.convert('1')作用是将图片二值化
image=image.convert('L')
# threshold用于设置二值化的阈值,以此提高图片的正确率 threshold=140 table=[] for i in range(256): if i<threshold: table.append(0) else: table.append(1) image=image.point(table,'1') image.show() res=tesserocr.image_to_text(image) print(res)
此时可以正确识别了:ce7F