python发票识别代码_python 发票验证码自动生成

有的时候我们使用一些自动化脚本需要自动登录到一些网站做一些操作,提高工作的效率。但验证码是一个拦路虎,面对各种复杂的甚至连人都可能搞错的验证码,机器的自动识别往往变得异常艰难,与验证码的斗争使我们头疼不已。

好消息是,随着深度学习在图像识别领域的发展,采用神经网络对验证码图像自动提取特征,其识别精度往往让人惊叹。但是,这类方法依赖于海量样本,当样本的数量达不到一定规模时,其识别效果也大打折扣。数据获取和数据信息标注耗费了大量的人力物力,在实际生成应用中难以普遍的推广。

那么,问题来了,有没有什么办法可以自动的获取数据并进行标注呢?答案是:有!

验证码生成规律解析

收集一些验证码,如图所示:

202007032014431012.jpg

上图验证码的来源和用途参考:全国增值税发票查验平台验证码识别

通过观察图片我们发现了以下规律:

验证码由6个字符(数字/字母/汉字)组成,包括4种颜色(红/黄/蓝/黑)。

验证码图片为宽90、高35的三通道RGB图像。

图片背景由两条随机曲线划分成多块,包含两种随机的背景颜色。

图片上有1-3根位置和长度都随机干扰线,颜色为绿色。

图片上大约有50个随机噪点,颜色随机。

所有字符有相似的大小和统一的字体(汉字和数字字母为两种不同字体)。

验证码图片生成——Captcha

python中有一款验证码生成的库captcha。pip install captcha

from captcha.image import ImageCaptcha

chars = 'haha'

image = ImageCaptcha().generate_image(chars)

image.show()

image.save("test.png")

效果如下:

202007032014431013.jpg

这个ImageCaptcha类的generate_image,返回的是一个”PIL.Image.Image”对象,可知该验证码生成库是基于于PIL库的。于是,我们去查看ImageCaptcha类的源码:

class ImageCaptcha(_Captcha):

"""Create an image CAPTCHA.

Many of the codes are borrowed from wheezy.captcha, with a modification

for memory and developer friendly.

ImageCaptcha has one built-in font, DroidSansMono, which is licensed under

Apache License 2. You should always use your own fonts::

captcha = ImageCaptcha(fonts=['/path/to/A.ttf', '/path/to/B.ttf'])

You can put as many fonts as you like. But be aware of your memory, all of

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值