tesserocr 简单验证码自动识别

简单文字验证码自动识别方法

前言

文字验证码

概述:OCR光学字符识别可以将验证码转换为电子文字,tesserocr是Python的一个OCR识别库,但是是对tesserect做的一层pythonAPI封装。

  • 我们先要安装 tesserect
  • 然后再安装我们的 tesserocr

tesserocr 的安装

mac 下安装

先使用 Homebrew 安装 ImageMagick 和 tesserect

1
2
3
brew install imagemagick
brew install tesseract
brew install tesseract-lang # 语言包

再安装 tesserocr 即可

1
pip3 install tesserocr pillow

Linux 下安装

1
yum install -y tesseract

再安装 tesserocr 即可

1
pip3 install tesserocr pillow

Ubuntu 下安装

1
sudo apt-get install -y tesseract-orc libtesseract-dev libleptonica-dev

再安装 tesserocr 即可

1
pip3 install tesserocr pillow

识别

1
2
3
4
5
6
import tesserocr
from PIL import Image

image = Image.open('code.png') # 图片路径
result = tesserocr.image_to_text(image)
print(result)

图片处理参数

有的时候识别不够精准,我们可以通过设置参数来修改精准度

灰度处理

1
2
image = image.convert('L')
image.show

二值化处理

1
2
image = image.convert('1')
image.show

如果需要单独指定二值化筏值,需要先转为灰度,在设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import tesserocr
from PIL import Image

image = Image.open('code2.jpg')

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')
image.show()

result = tesserocr.image_to_text(image)
print(result)