【python 文字识别】利用pytesseract库进行图片文字识别

关于中文的识别,效果比较好而且开源的应该就是Tesseract-OCR了,python 里面也有一个包去使用Tesseract-OCR。
这个包 叫pytesseract 。
安装pytesseract

pip install pytesseract

除此之外还需要安装图像处理的包PIL

pip install pillow

然后要安装一个Tesseract-OCR软件。这个软件是由Google维护的开源的OCR软件。再在Windows下配置一下环境变量。
下载地址:

链接:https://pan.baidu.com/s/16XOFmKImOMbqlKSnDh6Y6w 密码:uls8

下载好之后安装需要勾选相应的中文简体,繁体数据包,来识别中文哦。
F:\Program Files\Tesseract-OCR\tessdata
这个目录的chi_sim 就是中文简体,chi_tra就是繁体了。chi_sim 要对应版本,如果你不是从安装那儿下载的话。

在这里插入图片描述

然后修改 pytesseract安装包的地方的一个脚本:
E:\laidefa\Lib\site-packages\pytesseract 目录下

Tesseract-OCR引擎指向你安装的地方,这样才能跑起来。

tesseract_cmd = 'F:/Program Files/Tesseract-OCR/tesseract.exe'

安装好了环境,下面就可以开始中文识别啦。

先来一波简单的数字识别:

在这里插入图片描述

识别下面数字试试:
在这里插入图片描述

全部识别正确。

换做文本试试:
在这里插入图片描述

在这里插入图片描述

效果也不错哦。


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

from PIL import Image,ImageEnhance
import pytesseract
import time


def pic_to_word(filepath,filename,resize_num,b):
    """
    :param filepath: 文件路径
    :param filename:图片名
    :param resize_num:缩放倍数
    :param b:对比度
    :return:返回图片识别文字
    """
    try:
        time1 = time.time()
        im = Image.open(str(filepath)+str(filename))
        # 图像放大
        im = im.resize((im.width * int(resize_num), im.height * int(resize_num)))
        # 图像二值化
        imgry = im.convert('L')
        # 对比度增强
        sharpness = ImageEnhance.Contrast(imgry)
        sharp_img = sharpness.enhance(b)
        content = pytesseract.image_to_string(sharp_img, lang='chi_sim')
        time2 = time.time()
        print('本次图片识别总共耗时%s s' % (time2 - time1))
    except Exception as e:
        print("{0}".format(str(e)))

    return content


if __name__ == '__main__':
    filepath="F:/img_spam/test/"
    filename="4.png"
    resize_num = 2
    b = 2.0
    content=pic_to_word(filepath,filename,resize_num,b)
    print(content)



函数代码模块:

import pytesseract
import requests
from PIL import Image
from PIL import ImageFilter
from StringIO import StringIO


def process_image(url):
    image = get_image(url)
    image.filter(ImageFilter.SHARPEN)
    return pytesseract.image_to_string(image)


def  get_image(url):
    return Image.open(StringIO(requests.get(url).content))
  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东华果汁哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值