1 场景
识别图片中的文字(识别图片中的电话号码、姓名等)
2 方案
使用Tesseract OCR
软件来识别图片内容
官网:https://github.com/tesseract-ocr/tesseract
来自官方解释:
这个包包含一个OCR引擎- libtesseract和一个命令行程序- tesseract
Tesseract支持各种输出格式:纯文本、hOCR (HTML)、PDF、不可见的纯文本PDF、TSV。主分支还实验性地支持ALTO (XML)输出。
3 windows下安装
3.1 安装
下载官网:
https://github.com/UB-Mannheim/tesseract/wiki
下载文件:
https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v4.1.0.20190314.exe
安装路径:
D:\Program Files\Tesseract-OCR
将OCR安装路径,添加到环境变量
查看当前安装版本如下:
C:\Users\admin>tesseract -v
tesseract v4.0.0.20190314
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.2.0
Found AVX2
Found AVX
Found SSE
3.2 中文训练集
有训练集文件,才可进行图片上的文字识别。
默认有英文训练集,可以识别图片中的英文,训练集路径如下:
D:\Program Files\Tesseract-OCR\tessdata\eng.traineddata
命令行输入tesseract --list-langs
命令查看当前已按照语言包:
C:\Users\admin>tesseract --list-langs
List of available languages (2):
eng
osd
训练集官网:https://tesseract-ocr.github.io/tessdoc/Data-Files
下载中文训练集:https://github.com/tesseract-ocr/tessdata/raw/master/chi_sim.traineddata
将下载的简体中文训练集文件chi_sim.traineddata
,拷贝到tessdata
路径下:
D:\Program Files\Tesseract-OCR\tessdata\
再次查看,支持语言,可见已支持简体中文chi_sim
:
C:\Users\admin>tesseract --list-langs
List of available languages (3):
chi_sim
eng
osd
3.3 识别图片
基本语法命令:
tesseract imagename outputbase [-l lang] [--oem ocrenginemode] [--psm pagesegmode] [configfiles...]
如执行以下命令,选择语言为简体中文(默认为英文):
tesseract myOcrTest.png res -l chi_sim
执行结果如下:
D:\tmp\orcTest02>tesseract myOcrTest.png res -l chi_sim
Tesseract Open Source OCR Engine v4.0.0.20190314 with Leptonica
将在同级目录下生成文件res.txt
,文件内容如下:
文 字 识 别 测 试 123ceshi
同测试图片一致。
注意,解析结果将多生成一行
,返回解析结果时,需去掉最后一行
。
3.3 查看帮助
D:\tmp\orcTest02>tesseract --help
Usage:
tesseract --help | --help-extra | --version
tesseract --list-langs
tesseract imagename outputbase [options...] [configfile...]
OCR options:
-l LANG[+LANG] Specify language(s) used for OCR.
NOTE: These options must occur before any configfile.
Single options:
--help Show this help message.
--help-extra Show extra help for advanced users.
--version Show version information.
--list-langs List available languages for tesseract engine.