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

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

安装tesseract

mac环境下:

$ brew install tesseract

测试

$ tesseract -v
tesseract 3.05.01

直接使用

$ tesseract test.png output #识别test.png的图片,把结果放到output.txt中

图片

a3.1.png


识别结果

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 中文识别
相关文章
|
机器学习/深度学习 存储 监控
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
|
机器学习/深度学习 Python
【Python实战】——神经网络识别手写数字(三)
【Python实战】——神经网络识别手写数字
|
机器学习/深度学习 数据可视化 Python
【Python实战】——神经网络识别手写数字(二)
【Python实战】——神经网络识别手写数字(三)
|
机器学习/深度学习 数据采集 算法
Python基于OpenCV和卷积神经网络CNN进行车牌号码识别项目实战
Python基于OpenCV和卷积神经网络CNN进行车牌号码识别项目实战
|
机器学习/深度学习 TensorFlow 数据处理
使用Python实现深度学习模型:医学影像识别与疾病预测
【7月更文挑战第24天】 使用Python实现深度学习模型:医学影像识别与疾病预测
224 4
|
Python 计算机视觉
2024年Python最新利用python进行数学公式识别_python 识别图片中的数学公式,2024年最新字节跳动技术岗位面试
2024年Python最新利用python进行数学公式识别_python 识别图片中的数学公式,2024年最新字节跳动技术岗位面试
2024年Python最新利用python进行数学公式识别_python 识别图片中的数学公式,2024年最新字节跳动技术岗位面试
|
机器学习/深度学习 数据采集 监控
Python基于BP神经网络算法实现家用热水器用户行为分析与事件识别
Python基于BP神经网络算法实现家用热水器用户行为分析与事件识别
|
Python Windows
|
机器学习/深度学习 算法框架/工具 计算机视觉
使用Python实现图像分类与识别模型
使用Python实现图像分类与识别模型
507 2
使用Python实现图像分类与识别模型
|
机器学习/深度学习 编解码 文字识别
【开源】轻松实现车牌检测与识别:yolov8+paddleocr【python源码+数据集】
【开源】轻松实现车牌检测与识别:yolov8+paddleocr【python源码+数据集】

推荐镜像

更多