20. 验证码信息识别

  • OCR 即Optical Character Recognition, 光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。
  • tesserocr 是Python的一个OCR识别库。GitHub:https://github.com/tesseract-ocr/tesseract

20.1 软件安装:

  • 注意:在安装tesserocr前都需要先安装tesseract,具体说明如下:
pip install tesserocr #安装tesserocr  

pip install pillow # 图片处理目录

注意:

在mac下安装tesserocr ,需要先安装下面的软件
brew install tesseract --all-languages
brew install imagemagick

在:Ubuntu、Debian 系统下先安装:
sudo apt-get intall -y tesseract-ocr libtesseract-dev libleptonica-dev
在:CentOS、Red Hat 系统:
yum install -y tesseract

在windows安装tesserocr前要先安装:tesseract 他是为tesserocr提供支持的
下载目录:https://digi.bib.uni-mannheim.de/tesseract/ 会有很多下载文件,下载一个3.0版本的exe文件即可
在安装中要勾选上Additional language data(download)选项来安装OCR识别支持的语言包

20.2 具体使用:

  • 简单识别验证码
#验证识别测试
import tesserocr
from PIL import Image

#打开图片
image = Image.open("./code/5.png")

#识别验证码
result = tesserocr.image_to_text(image)

print(result)
  • 验证码的深度处理,如转灰度、二值化等操作
#验证识别测试
import tesserocr
from PIL import Image

image = Image.open("./code/5.png")
#将图片转化为灰度图像
image = image.convert("L")
threshold = 127
table=[]
for i in range(256):
    if i < threshold:
        table.append(0)
    else:
        table.append(1)
image = image.point(table,'1')
#识别验证码
result = tesserocr.image_to_text(image)

print(result)