当前位置: 代码迷 >> 综合 >> pytesseract+Tesseract-OCR图片文字识别趟坑
  详细解决方案

pytesseract+Tesseract-OCR图片文字识别趟坑

热度:90   发布时间:2023-12-22 03:26:25.0

一、tesseract下载

  1. 代码托管在github上,连接:

    https://github.com/tesseract-ocr/tesseract/wiki/Downloads

    找windows下载

  2. 也可以直接安装包下载

    https://pan.baidu.com/s/1GKAWuBmg7vpgDPqKOpeMtA

二、下载python的包

pip install Pillow
pip install pytesseract

修改pytesseract.py

这里写图片描述

将红线部分修改成tesseract的安装路径,使pytesseract能够调用tesseract。

tesseract_cmd = 'D:/Program Files (x86)/Tesseract-OCR/tessdata/tesseract.exe'

如果没有修改这个变量,就会报错

pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path

三、添加环境变量

添加TESSDATA_PREFIX的环境变量,设置为安装目录下的tessdata目录 D:\Program Files (x86)\Tesseract-OCR\tessdata

否则会报错

Error opening data file \Program Files (x86)\Tesseract-OCR\tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.
Failed loading language 'eng'
Tesseract couldn't load any languages! Could not initialize tesseract.

配置完如果不好使重启大法

四、测试DEMO

# -*-encoding:utf-8-*-
import pytesseract
from PIL import Image# 测试的是pytesseract自带的图片,效果十分理想,完全没毛病
image = Image.open("test-european.jpg")
string = pytesseract.image_to_string(image)
print(string)

如果是中文识别就需要在image_to_string()方法添加一个参数lang='chi_sim',在上面那个安装包里面有,也可以在这 戳我 里面找到语言包进行下载,但是这个识别准确率真是惨目忍睹。

有一些彩色的图片还需要进行:彩色转灰度,灰度转二值,二值图像识别,参考:https://blog.csdn.net/djd1234567/article/details/50739872