【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))
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页