软硬兼环境
- windows 10 64bit
- anaconda with python 3.7
- nivdia gtx 1066
- opencv 4.4.0
- tesseract 5.0.0 alpha
视频看这里
此处是 youtube
的播放链接,需要科学上网。喜欢我的视频,请记得订阅我的频道,打开旁边的小铃铛,点赞并分享,感谢您的支持。
简介
tesseract
的 OCR(Optical Character Recognition)
引擎最先由HP实验室于1985年开始研发,后来转交给了 google
继续开发,现在项目托管在了 github
,在3.0版本后开始支持中文识别,目前已经发展到了5.0,支持多种操作系统。本文就来看看 tesseract-ocr
的基本安装、使用以及如何在 python
中去调用。
tesseract-ocr安装
官方的下载地址: https://tesseract-ocr.github.io/tessdoc/Downloads.html,这里下载的是 windows
的最新版 https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v5.0.0-alpha.20201127.exe
下载好后直接安装,在安装组件的时候将中文包也选上,因为我们要进行中文的文字识别
接下来设置2个系统环境变量,将 tesseract-ocr
的安装目录加入到 PATH
中,默认的安装路径是 C:\Program Files\Tesseract-OCR
然后新建一个新的环境变量 TESSDATA_PREFIX
,其值是 C:\Program Files\Tesseract-OCR\tessdata
如果自定义过安装路径的话,就对应着修改。
验证环境
通过命令 tesseract -v
查看版本号
通过 tesseract --list-langs
,查看支持识别的语言
(base) PS C:\Users\Administrator> tesseract --list-langs
List of available languages (4):
chi_sim
chi_sim_vert
eng
osd
测试效果
找张包含中文的图片来测试下
tesseract test.png result -l chi_sim
识别的结果会保存在一个 result.txt
文件中
在python中使用
这里需要用到一个第三方的库 pytesseract
,首先安装
pip install pytesseract
下面看个示例代码
import cv2
import sys
import pytesseract
if __name__ == '__main__':
if len(sys.argv) < 2:
print('Usage: python ocr_demo.py image.jpg')
sys.exit(1)
# 使用命令行参数
imPath = sys.argv[1]
# -l 识别中文
# --oem 使用LSTM作为OCR引擎,可选值为0、1、2、3;
# 0 Legacy engine only.
# 1 Neural nets LSTM engine only.
# 2 Legacy + LSTM engines.
# 3 Default, based on what is available.
# --psm 设置Page Segmentation模式为自动
config = ('-l chi_sim --oem 1 --psm 3')
im = cv2.imread(imPath, cv2.IMREAD_COLOR)
# 进行识别,本质上是调用tesseract命令行工具
text = pytesseract.image_to_string(im, config=config)
# 打印结果
print(text)
使用上面的测试图片运行代码,可以得到
(demo) PS C:\xugaoxiang\gogs\learnopencv\OCR> python .\ocr_demo.py C:\Users\Administrator\Desktop\test.png
个人网站: https://xugaoxiang.com