pytesseract的使用 | python识别验证码

Posted 冰_墩_墩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytesseract的使用 | python识别验证码相关的知识,希望对你有一定的参考价值。

1. 安装tesseract

详见:
https://blog.csdn.net/lijiamingccc/article/details/119459775

2.安装pytesseract

在pycharm终端下,安装 pytesseract,如图所示

pip install pytesseract

3. 修改包中部分代码


文件中的这个路径,改成第一步你安装的位置,建议找到之后直接复制
前面加个r,是为了说明这个路径是一段字符串,防止转义

4.代码网站测试

代码:

网址可以自己随便找一个

    res = requests.get(url="x'x'x'x'x")

    with open('image.jpg', 'wb') as fw:
        fw.write(res.content)

    img = cv2.imread("image.jpg")

    # 四周置白色  图片降噪
    def around_white(img):
        w, h, s = img.shape
        for _w in range(w):
            for _h in range(h):
                if (_w <= 5) or (_h <= 5) or (_w >= w-5) or (_h >= h-5):
                    img.itemset((_w, _h, 0), 255)
                    img.itemset((_w, _h, 1), 255)
                    img.itemset((_w, _h, 2), 255)
        return img
	
    img2 = around_white(img)
    ret, img2 = cv2.threshold(img2, 150, 255, cv2.THRESH_BINARY)
	
	 # 前面需要添加一些图像降噪的操作
    code = pytesseract.image_to_string(img2,config="--psm 6 digits")
    code = re.findall('\\d+',code)[0]
    print("识别的验证码为:{}".format(code))

效果:

识别效果不一定保证每次都正确,但是基本上5次之内都是可以成功的,这里可以写一个循环,直到成功为止。

以上是关于pytesseract的使用 | python识别验证码的主要内容,如果未能解决你的问题,请参考以下文章

Python • 图片识别pytesseract快速识别提取图片中的文字

python-使用内置库pytesseract实现图片验证码的识别

python下调用pytesseract识别某网站验证码

[原]Python 使用pytesseract库识别验证码(MAC系统)

python下调用pytesseract识别某网站验证码

Python3.x:pytesseract识别率提高(样本训练)