您当前的位置: 首页 >  Python

Python爬虫:tesseract识别图片验证码

彭世瑜 发布时间:2018-04-28 14:31:38 ,浏览量:4

安装tesseract

mac环境下:

$ brew install tesseract

测试

$ tesseract -v
tesseract 3.05.01
直接使用
$ tesseract test.png output #识别test.png的图片,把结果放到output.txt中

图片 这里写图片描述

识别结果

Hello world!
1234
python接口

安装模块

 $ pip install pillow
 $ pip install pytesseract

代码实现

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

from PIL import Image
import pytesseract

img = Image.open("tesseract_demo.png")
img = img.convert("L")  # 转为黑白图
ret = pytesseract.image_to_string(img)
print(ret)

"""
Hello world!
1234
"""

如果没有识别出内容,使用命令行方式识别,看下报错 如果报错 empty page, 加一些空白就可以

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

from PIL import Image
import pytesseract

img = Image.open("tesseract_demo.png")

# 新建一个比原图大一倍左右的白色画布,将原图贴到白色背景图中
image = Image.new("RGB", (300, 200), "white")
image.paste(img, (50, 50))

# 接下来要使用新合成的图
image = image.convert("L")  # 转为黑白图
ret = pytesseract.image_to_string(image)
print(ret)



参考: OCR Tesseract 识别报 empty page解决办法

识别中文

需要下载中文包: https://pan.baidu.com/s/10dP9ZJMnwX4yOVz6K4jykQ#list/path=%2F 密码 v13f 注意报错的路径,比如mac下:

/usr/local/Cellar/tesseract/3.05.01/share/tessdata/chi_sim.traineddata

把下载的文件chi_sim.traineddata 拷贝到这个目录下即可

import pytesseract
import cv2


def ocr_text(image_name):
    img = cv2.imread(image_name)
    gray = cv2.cvtColor(src=img, code=cv2.COLOR_BGR2GRAY)
    ret, th = cv2.threshold(src=gray.copy(), thresh=236, maxval=255, type=0)
    
    result = pytesseract.image_to_string(th, lang='chi_sim')
    return result


if __name__ == '__main__':
    image = "out-9-22.png"
    print(ocr_text(image))

识别效果还可以 cv2模块也可以用 PIL 替代

参考

  1. Mac上tesseract-OCR的安装配置
  2. python+pytesseract 中文识别
关注
打赏
1688896170
查看更多评论

彭世瑜

暂无认证

  • 4浏览

    0关注

    2727博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.4222s