简单图形验证码识别

图形验证码

安装,配置及连接

OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程

tesserocr是Python的一个OCR识别库,是对tesseract做的一层Python API封装,它的核心是tesseract。需要先安装tesserac再安装tesserocr

tesserocr GitHub:https://github.com/sirfz/tesserocr

tesserocr PyPI:https://pypi.python.org/pypi/tesserocr

tesseract下载地址:http://digi.bib.uni-mannheim.de/tesseract

tesseract GitHub:https://github.com/tesseract-ocr/tesseract

tesseract语言包:https://github.com/tesseract-ocr/tessdata

tesseract文档:https://github.com/tesseract-ocr/tesseract/wiki/Documentation

安装tesseract:sudo apt-get install -y tesseract-ocr libtesseract-dev libleptonica-dev

查看支持语言:tesseract --list-langs

安装语言包:

git clone --depth=1 https://github.com/tesseract-ocr/tessdata.git
sudo mv tessdata/* /usr/share/tesseract-ocr/tessdata

安装tsserocr:pip3 install tesserocr pillow

验证:

tesseract image.png result -l eng && cat result.txt  # tesseract命令,其中第一个参数为图片名称,第二个参数result为结果保存的目标文件名称,-l指定使用的语言包,在此使用英(eng)

识别

可从知网注册页面获取图形验证码:http://my.cnki.net/elibregister/commonRegister.aspx

import tesserocr
from PIL import Image
image = Image.open('image.png')
print(tesserocr.image_to_text(image))  # tesserocr的image_to_text()方法,再将其识别结果输出,识别效果更好

import tesserocr
print(tesserocr.file_to_text('image.png'))

减少干扰

# 将图片转化为灰度图像

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

# 二值化,小于阀值的为0,大于阀值的为1,黑白来说,0为黑色
threshold = 80
table = []
for i in range(256):
    if i < threshold:
        table.append(0)
    else:
        table.append(1)
image = image.point(table ,'1' ) 
image.show() 

# 更简洁的二值化
image = iamge.point(lambda i: i >160 and 255, '1') 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WY_记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值