DYBOY's Blog

Tesseract实现简单的验证码识别

现在的网站普遍存在验证码,阻挡了一大批爬虫,如果使用的简单的验证码,那么可以使用Tesseract来实现简单的验证码识别

识别效果

Python实现

基于Tesseract的一个验证码识别程序如下:

# -*- coding:utf-8 -*-

from PIL import Image
import tesserocr


# 图片转灰度到二值化
def get_bin_img(img, threshold=128):
    img = img.convert('L')    # 灰度处理
    table = []
    for i in range(256):
        if i < threshold:
            table.append(0)
        else:
            table.append(1)
    img = img.point(table, '1') #二值化
    return img


if __name__ == '__main__':
    image = Image.open('1.jpg')
    image = get_bin_img(image, 127)
    result = tesserocr.image_to_text(image)
    print(result)

其主要步骤:

  • 读取图片
  • 图片转灰度图
  • 灰度图二值化,变黑白图
  • Tesseract 图片转文字
  • 输出识别出的结果

缺点:

只适合一些简单的验证码,如果文字有变形,有干扰线,有噪点,都是不适合的。虽然干扰线和噪点可以去除,但是干扰线在某些情况下并不好去除,噪点在二值化后,再使用九邻接点法判断去除噪点即可

版权声明:《 Tesseract实现简单的验证码识别 》为DYBOY原创文章未经允许不得转载。

 DYBOY
 作者签名:安全从业者,爱好安全产品开发,渗透测试,Web漏洞研究

发表评论:

用心评论~

TOP
Powered by Emlog | Theme:Monkey by DYBOY
渝ICP备16008772号
sitemap