Python2.7 pytesser提取图片中文字信息
Nov 30, 2017
图片中存在大段的文字,用手敲实在是费劲。很多在线转换的工具,速度慢,并且达到一定次数后会收费。贫穷让我自力更生,查到python可以通过安装pytesseract库来进行文字识别。而pytesser调用了tesseract,因此还需要安装Tesseract-OCR软件(OCR:Optical Character Recognition,即光学字符识别技术,专门用于对图片文字进行识别,并获取文本。tesseract-ocr引擎先由HP实验室研发,后来成为一个开源项目,主要由google进行改进优化)。另外还需要用的图像处理库PIL库。
网上相关资料很多,在安装过程中出现了很多问题,特将安装方法和遇到的问题做个记录,方便日后查阅。
运行环境为:OS X Yosemite 10.10.5
1.安装PIL和pytesseract库
|
|
2.安装Tesseract-OCR
2.1 安装homebrew
Homebrew是MacOS上的包管理器,类似于ubuntu中的apt-get,centos中的yum。
|
|
安装好后,可用 brew -v 查看认是否安装成功。
|
|
2.2 安装tesseract
安装tesseract会提示 tesseract:XQuartz is required to install this formula. X11Requirment unsatiffied!
需要先安装xquartz!
|
|
2.3 安装Tesseract-OCR语言包配置
默认安装的是eng英文语言包。如果需要对汉语进行提取,则需要安装汉语语言包。
语言包下载地址:https://github.com/tesseract-ocr/tessdata
下载chi_sim.traineddata(中文简体),将其拷贝到/usr/local/Cellar/tesseract/3.05.01/share/tessdata下。

验证Tesseract-OCR:
|
|
其中 -l 表示识别的语言,test是输出到文件txt的名字。在指定路径下能够看到生成的txt文件。
png格式的图片,提前其中的文字信息

提取后的效果:
3.python程序提取图片信息
|
|
提取结果

其中需要说明:
- import pytesseract报错如下
|
|
说pytesseract.py无法引用Image这个包,在确认了PIL是正常安装且能够正常使用,于是找到了pytesseract.py报错的地方,源码是:
|
|
我的PIL的Image文件和pytesseract.py不在同一目录下,因此没法直接引用。并且没有走 from PIL import Image 这条语句,说明是异常没有捕获到,改一个范围更大的异常进行捕获就可以了:
|
|
- python不能够读取中午,加了 #coding:utf-8 也不行;查阅了网上的资料,加上如下三行,搞定!
|
|
具体添加的位置见完整代码。
另外,尝试了有背景花纹,颜色和背景接近和非正常字体的图片的文字提取信息。发现正常字体在颜色和背景接近的情况下,能够大致识别出文字信息,而在非正常字体的情况下几乎不能正确提前信息。见下图:

另外,对图片的处理和对Tesseract-OCR语言包的训练,可以提高识别率,以后可能会继续研究。
