zoukankan      html  css  js  c++  java
  • python3爬虫之验证码的识别——图形验证码

    环境安装见博文《python3爬虫之验证码的识别——环境安装

    图形验证看似是最为简单的验证,但是因为涉及到了很多图像处理方面的知识,想要做一个通用的验证程序并不简单

    并且tesserocr自带的训练库识别的效果真是差强人意啊

    本例通过中国知网注册页面的验证码为例 http://my.cnki.net/elibregister/commonRegister.aspx

    通过浏览器工具将验证码图片保存到python工程文件下

    主要代码为(验证码图片不经过任何处理):

    import tesserocr
    from PIL import Image
    
    image = Image.open('tzxw.jpg')
    image.show()
    res = tesserocr.image_to_text(image)# 在pycharm中有兼容性问题
    print(res)

    ps:tesserocr.image_to_text( ) 这个方法可能在PyCharm里会标红,但是不影响运行

    输出结果为空,即未识别出来,因此我们需要将图片处理一下,例如减少背景噪点、增加对比度之类

    本例中采用设定一个阈值将图片转换为二值图

    threshold = 135 # 阈值
    table = []
    for i in range(256):
        if i < threshold:
            table.append(0)
        else:
            table.append(1)
    image = image.point(table,'1')

    阈值设定的大小与识别结果息息相关,当然不同的图片可能会有不同的阈值才能识别出来。因此这个方法并不是一个通用的方法

    本例中输出结果:

    (二值图)

    输出结果也是tzxw

    but!

    换了几张一样大小的图测试发现,阈值的选择各不相同,有的图片就是怎么都识别不了或者识别错误

  • 相关阅读:
    Got05
    Git07
    Git09
    Git11
    Git10
    Git13
    Git12
    Git14
    Listview点击跳转页面
    《三个和尚》观后感
  • 原文地址:https://www.cnblogs.com/aby321/p/11339955.html
Copyright © 2011-2022 走看看