python验证码处理,python3的验证码识别算法

  python验证码处理,python3的验证码识别算法

  生成动态代码图像

  为了模拟验证码的生成,第一个老师形成随机字符,并对字符进行模糊处理。本节介绍Python提供的Pillow模块。

  枕头

  Pil:python图像库,python图像处理标准库,功能强大。

  PIL是第三方库,使用前必须安装。具体顺序如下。(如果安装了Anaconda,可以跳过这一步。)

  $ pip安装枕头

  首先简单说明一下枕头的作用。

  操作图

  缩放图像是Pillow的功能之一。比如如下图。

  从pil导入图像

  #打开图像并注意路径

  img=image . open(pitball。JPEG格式).

  #获取图像大小

  重量,高度=img.size

  Print()原始图像尺寸((x))。格式(高度,高度))

  #缩放50%

  img.thumbnail((重量//2,高度//2))

  Print()调整后的图像尺寸((x))。格式(高度//2,高度//2))

  #保存缩放后的图像

  img.save(thumbnail.jpg , jpeg ).

  Pillow还提供了其他功能,如旋转、剪切、滤镜、输出字符和调色板。

  图像过滤器

  尝试处理模糊的图像。

  从PIL导入图像,图像过滤器

  #打开图像文件,注意路径

  img=image . open(pitball。JPEG格式).

  #应用模糊滤镜

  img 2=img . filter(image filter . blur))。

  img2.save(blur.jpg , jpeg ).

  ImageFilter是Python提供的图像过滤器,和image filter。模糊是一个模糊过滤器。

  以上代码的具体效果如下。

  ImageDraw

  此外,Pillow的ImageDraw提供了几种可以直接绘制的列绘制方法。尝试以下方法生成字符认证码图像:

  #-*-编码:utf-8-*-

  ""

  @ file:生成_随机_代码. py

  @时间:2020/01/3120336032336010

  @作者:三千年大梦

  @联系人:yiluolion@126.com

  ""

  #将导入库放在这里

  从随机导入randint,选择

  从PIL导入图像,图像绘制,图像字体,图像过滤器

  defRND_chr(chr_set):

  来获取随机字符。

  参数:

  chr_set创建的字符集:

  退货:

  返回随机字符。

  ""

  returnchoice(chr_set))

  def rnd_bg_color():

  获取随机像素值并填充背景。

  退货:

  返回随机像素值和元组类型。

  ""

  Returns (randint (97,255),randint (97,255),randint (97,255))

  def rnd_chr_color():

  获取" "随机像素并填充输出字符。

  退货:

  返回随机像素值和元组类型。

  ""

  #画板填充颜色有一定偏差,避免完全覆盖。

  return (randint (32,96),randint (32,96),randint (32,96))

  戴尔大师(:

  #生成字符集

  chr_set=[0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9]

  对于范围(65,91):

  CHR_set.append(CHR(I))

  forjinrange (97,123):

  CHR_set.append(CHR(j))

  #print(chr_set))是

  #定义画板尺寸25050

  宽度=60 * 5

  高度=60

  图像对象来创建空白画板。

  image=image.new(RGB ,)width,height),(255,255))

  创建一个绘图对象

  draw=ImageDraw。绘制(图像)

  创建字体对象

  font=image font.truetype(。/consola。TTF ,36)).

  #填满画板

  forxinrange(宽度) :

  foryinrange(高度) :

  Draw.point () x,y),fill=rnd_bg_color))

  #文本填充

  forninrange(5):

  draw.text () 60 * n25,12)、rnd _ chr (chr _ set)、fill=rnd_chr_color)、font=font))))

  #模糊保存图像内容

  image=image.filter(图像过滤器.模糊).

  image.save(。/random_code.jpg , jpeg )

  if __name__==__main__ :

  main())

  代码的具体实现过程是用随机颜色填充背景,生成文字,最后模糊图像。具体效果如下

  执行代码时,可能会出现以下错误:

  错误:无法打开资源

  这个问题是因为PIL不能确定字体文件的位置,所以考虑直接提供绝对位置。

  font=image font . truetype(/absolute/path/font。TTF),36)).

  本文中提到的枕头只是简单功能的一部分。要继续了解PIL的强大功能,请参考PILL的官方文档。

  https://pillow.readthedocs.org/

  以上是本文的全部内容,希望对大家的学习有所帮助。另外,希望大家能支持云天空教程。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • qq短信验证码发送失败怎么回事,qq验证码失败是怎么回事
  • ,,使用阿里大于(大鱼)平台进行发送手机验证码的流程
  • ,,SpringSceurity实现短信验证码登陆
  • android读取短信验证码,
  • android读取短信验证码,,Android使用MobSDK短信验证
  • android自动获取短信验证码功能在哪,安卓自动获取短信验证码
  • android自动获取短信验证码功能在哪,android自动获取短信验证码功能失效,Android自动获取短信验证码功能
  • android实现短信验证码自动填写功能是什么,安卓短信验证码自动填充 实现
  • android实现短信验证码自动填写功能是什么,安卓短信验证码自动填充 实现,Android实现短信验证码自动填写功能
  • android如何通过手机自动获取短信验证码信息,安卓自动获取短信验证码
  • android如何通过手机自动获取短信验证码信息,安卓自动获取短信验证码,Android如何通过手机自动获取短信验证码
  • ,,python网络爬虫实现发送短信验证码的方法
  • ,,Python实现滑块拼图验证码详解
  • ,,python3 破解 geetest(极验)的滑块验证码功能
  • 发验证码不在桌面显示,验证码能收到桌面上不显示怎么回事
  • 留言与评论(共有 条评论)
       
    验证码: