图形验证码识别技术
- 有时候在登录或者请求一些数据时侯会出现图形验证码,因此需要学会将图片翻译成文字的技术
- 将图片翻译成文字一般被称为光学文字识别(optical character recognition),简称 OCR,实现 OCR 的库不是很多,特别是开源的,因为这块存在一定的技术壁垒(需要大量的数据,算法,机器学习,深度学习知识等),并且如果做好了具有很高的商业价值,因此开源的比较少,我们这里用 tesseract
tesseract
- tesseract 是一个 OCR 库,目前由谷歌赞助,tesseract 是目前公认的最优秀,最准确的开源 OCR 库,tesseract 具有很高的识别度,也具有很高的灵活性,可以通过训练识别任何字体
安装
windows 系统
linux 系统
在 win 命令行中使用 tesseract 识别图像
tesseract image.png result # image.png 为想要识别的图片,result 为识别的结果
tesseract --list-langs # 查看已有的语言列表
tesseract chi.png chi.txt -l chi_sim # -l:选择语言 chi_sim:简体中文
python 中使用 tesseract
- 在 python 中,需要安装 pytesseract 库,通过 pip 安装
pip install pytesseract
# 这里自动安装 PIL.Image` - 使用 pytesseract 将图片上的文字转换为文本文字如下:
import pytesseract
from PIL import Image
text = pytesseract.image_to_string(Image.open(r'D:\image.png'))
print(text)
- 原图: