zoukankan      html  css  js  c++  java
  • python验证码处理(1)

      这篇博客及之后的系列,我会向大家介绍各种验证码的识别。包括普通图形验证码,极验滑动验证码,点触验证码,微博宫格验证码。


    一.普通图形验证码

      之前的博客已向大家介绍了简单的图形验证码的处理过程,但是会和实际的有所差别,这是因为验证码内的多余线条与图案干扰了图片的识别。因此,对于这种情况,需要我们进行一些处理,然后才能识别出正确的结果,下面是进行处理的方法。

    1.灰度处理

      可以用Image对象的convert()方法传入参数L,就可以把图片转化为灰度图像,如下代码:

    img = Image.open('1.jpg')
    image = img.convert('L')
    image.show()
    

    结果为:

    2.二值化处理

      可以传入1进行二值化处理,如下代码:

    img = Image.open('1.jpg')
    image = img.convert('1')
    image.show()
    

    结果为:

      还可以指定二值化的阈值,默认的阈值是127,要指定的话必须要先转化为灰度图像,再指定二值化的阈值。代码如下:

    image = Image.open('1.jpg')
    # 先转化为灰度图片
    image = image.convert('L')
    threshold = 180	# 设置阈值
    my = []
    for i in range(256):
    	if i < threshold:
    		my.append(0)
    	else:
    		my.append(1)
    
    # 二值化处理
    image = image.point(my,'1')
    image.show()
    

      这里原来的验证码中的线条已经去除,验证码变得很清楚。这个时候重新识别验证码,结果如下:

  • 相关阅读:
    ny 58 最少步数 (BFS)
    Oracle 参数文件
    Oracle 密码文件
    Oracle 表空间与数据文件
    Oracle 回滚(ROLLBACK)和撤销(UNDO)
    Oracle 控制文件(CONTROLFILE)
    Oracle 联机重做日志文件(ONLINE LOG FILE)
    Oracle 常用目录结构(10g)
    Oracle 归档日志
    instance_name,db_name,oracle_sid之间的关系
  • 原文地址:https://www.cnblogs.com/ITXiaoAng/p/11828100.html
Copyright © 2011-2022 走看看