tesseract 安装及配置
pytesseract 图片识别提取
背景
工作需要,由于不能直接获取某一控件上的数字数据,因此这里尝试 ocr 来识别。
需要识别的是数字数据,且整齐,无模糊遮挡等影响因素。
引入 Tesseract 的 OCR 引擎 (Google's Tesseract-OCR Engine),并结合 pytesseract 库 (Python-tesseract tools) 来完成图片中数字识别提取。
tesseract 安装 (windows)
下载地址
- tesseract 下载地址 (win)
- 建议下载较新的稳定版本,如
tesseract-ocr-w64-setup-v5.0.0.20190526.exe
- 下载慢的请走热心网友分享的网盘下载
win 安装
- 一路下一步就行了,语言包可以先不用选择,如果选择的话会比较慢(反正我这里比较慢,翻墙也不行)
- 建议安装在默认路径下,即 C 盘,避免出现乱七八糟的问题
语言包下载
- 下载额外的需要的语言包语言包下载地址,我的需求显然不需要额外的语言包,
eng.traineddata
(可识别数字及英文) 就够了 - 拷贝语言包到
tesseract
安装路径下的tessdata
目录下
环境配置
- 添加环境变量,
Path
变量下添加:C:\Program Files\Tesseract-OCR
- 添加环境变量,新建
TESSDATA_PREFIX
变量,值为C:\Program Files\Tesseract-OCR\tessdata
本地测试
-
tesseract -v
> tesseract -v tesseract v5.0.0.20190623 leptonica-1.78.0 libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.3) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0 Found AVX2 Found AVX Found SSE > tesseract --list-langs List of available languages (2): eng osd
-
图片识别测试
tesseract imagename outputfilename [-l lang] [-psm pagesegmode] [configfile…]
> tesseract test.png test -l eng Tesseract Open Source OCR Engine v5.0.0.20190623 with Leptonica
识别出的结果保存在
test.txt
文件中 -
错误处理
-
read_params_file: parameter not found
在 tesserdata 目录下执行如下命令(请自行替换指定语言包名)combine_tessdata -e chi_sim.traineddata chi_sim.config
-
其他
请自行百度,肯定是哪里没配置好
-
pytesseract 识别提取
-
安装
pytesseract
:pip install pytesseract
-
安装
Pillow
:pip install pillow
pip list Package Version ----------- ------- Pillow 7.0.0 pip 20.0.2 pytesseract 0.3.3 setuptools 46.0.0 wheel 0.34.2
# 示例,针对我的情况,识别率接近100% import pytesseract from PIL import Image im_test = Image.open('test.png') print(pytesseract.image_to_string(im_test).split()) ------------------------------------------------------------- ['10150.13', '130.27', '+1.30%']
2021.11.22更新,ddddocr
2021.11.23更新,EasyOCR,参考文章Python Easyocr 图片文字识别
pip install easyocr --use-feature=2020-resolver