简单文字验证码自动识别方法
前言
概述:OCR光学字符识别可以将验证码转换为电子文字,
tesserocr
是Python的一个OCR识别库,但是是对tesserect
做的一层pythonAPI封装。
- 我们先要安装
tesserect
- 然后再安装我们的
tesserocr
tesserocr 的安装
mac 下安装
先使用 Homebrew 安装 ImageMagick 和 tesserect
1 | brew install imagemagick |
再安装 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 | import tesserocr |
图片处理参数
有的时候识别不够精准,我们可以通过设置参数来修改精准度
灰度处理
1 | image = image.convert('L') |
二值化处理
1 | image = image.convert('1') |
如果需要单独指定二值化筏值,需要先转为灰度,在设置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19import 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)