OCR简介
本post探讨的光学识别工具是google开发的tesseract
,项目主页:
tesseract-ocr/tesseract
该项目用C语言所写,官方提供了生成好的windows平台下的二进制文件,但是是老版本的,然后又说了可以从这里面Tesseract at UB Mannheim下到最新版的win平台打包
确实第三方维护的最新版的tesseract
,但是我想说安装的时候注意不要选择PATH
那一项,作者打包时估计没注意,直接把你的PATH
覆盖了,还好之前有备份PATH
环境变量,要不然痛不欲生
今天主要讲tesseract
在win平台下的使用,以及基于tesseract
打包的,用python写的两个库:
tesseract使用
|
|
获取使用帮助,比较详细吧
|
|
基本就是这种用法,举个例子:
桌面有个图片,叫1.jpg
我们先把cmd的路径切到桌面,然后输入:
|
|
-l chi_sim
表示用训练的中文数据库识别图片中的文字,不带-l
默认使用英文,多个语言之间使用+
连接,以下是其他语言的简写:
下载其他训练好的语言数据包:
执行上面的命令以后,会在桌面生成一个test.txt
文件,文件内容就是识别的文字
评价:识别效果一般
pytesseract使用
之所以说是tesseract
的封装,是因为底层就是调用上述tesseract
命令,这个python库的使用比较简单,看下例子:
|
|
直接用print
输出到控制台可能出现乱码问题,因为image_to_string
函数内部返回的:
|
|
open
没有指定编码,而生成的存放结果的临时文件是通过官方tempfile
模块生成的,之后将结果写入文件是通过subprocess.Popen
,所以临时文件中的结果与cmd的编码有关。可能会出现乱码。
PyOCR使用
|
|
这是官网的例子,也很容易看懂
还能检测方向:
|
|