专栏首页python3python实现验证码生成显示

python实现验证码生成显示

from  captcha.image import ImageCaptcha
import numpy as  np
import matplotlib.pyplot as  plt
from  PIL import Image
import random

number = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u','v', 'w', 'x', 'y', 'z']
Alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U','V', 'W', 'X', 'Y', 'Z']


##生成n位验证码 这里n=4
def random_captcha_text(char_set=number + alphabet + Alphabet, captcha_size=4):
    captcha_text = []
    for i in range(captcha_size):
        c = random.choice(char_set)
        captcha_text.append(c)
    return captcha_text


##使用ImageCaptcha库生成验证码
def gen_captcha_text_and_image():
    image = ImageCaptcha()
    captcha_text = random_captcha_text()
    captcha_text = ''.join(captcha_text)
    captcha = image.generate(captcha_text)
    captcha_image = Image.open(captcha)
    captcha_image = np.array(captcha_image)
    return captcha_text, captcha_image


if __name__ == '__main__':
    ##展示验证码
    text, image = gen_captcha_text_and_image()
    f = plt.figure()
    ax = f.add_subplot(111)
    ax.text(0.1, 0.9, text, ha='center', va='center', transform=ax.transAxes)
    plt.imshow(image)
    plt.show()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 初学Python,tkinter计算器代

    py3study
  • python3 cookbook

    使用deque(maxlen=N)构造函数会新建一个固定大小的队列.当新的元素加入并且这个队列已满的时候,最老的元素会被移除掉.在队列两端插入或者删除元素时间复...

    py3study
  • Automate the Boring

    将《Automate the Boring Stuff with Python》的语法部分学完了,开始依葫芦画瓢做第一个项目。

    py3study
  • 技术解析 | 线下门店消费场景中的感知和互动

    随着技术的快速发展和人们生活水平的不断提升,传统的零售模式已经难以满足消费者的需求,而且传统的运营模式需要进行重构。京东提出了无界零售的概念,对于前端门店用户体...

    京东技术
  • 一行代码加快pandas计算速度

    Pandaral·lel 的想法是将pandas计算分布在计算机上所有可用的CPU上,以显着提高速度。

    代码医生工作室
  • TensorFlow验证码识别

    本节我们来用 TensorFlow 来实现一个深度学习模型,用来实现验证码识别的过程,这里我们识别的验证码是图形验证码,首先我们会用标注好的数据来训练一个模型,...

    崔庆才
  • Ubuntu配置源与安安装软件

    深浅无解
  • MySQL之text字段

    之前做的SQL审核工具不支持text类型的字段的,今天一个业务方问我为什么不支持text字段,大概给他讲了讲,后续发现可能还有些不完善的地方,这里总结一下t...

    AsiaYe
  • Docker架构分析

    大家一定很困惑 dockerd, containerd, ctr,shim, runc,等这几个进程的关系到底是啥

    sealyun
  • 【工作中学习1】两个设计模式:Singleton(单例)和 Adapter(适配器)

      好久没有写自己的学习小文章,罪过罪过。。最近本菜鸟在项目中接触到经常用到的设计模式,首先是Singleton(单例),这个相信大家都会用到很多,所以自己用代...

    宋凯伦

扫码关注云+社区

领取腾讯云代金券