识别图片中文字字母的引擎,具体介绍可以百度。
由于Linux位于公司内网无法联网下载安装,所以需要离线安装。由于需要编译源码,所以首先需要安装gcc编译工具,gcc的安装方法请自行百度。tesseract-ocr首先需要下载下面的源码包(按照索引的顺序安装,如果编译时报出缺少某组建,下载安装即可):
1.autoconf-2.69.tar.gz
2.automake-1.15.tar.gz
3.libtool-2.4.2.tar.gz
4.leptonica-1.73.tar.gz
5.libpng-1.5.8.tar.gz
6.tesseract-ocr3.02.02.tar.gz
7.eng.traineddata.gz
以上包的版本可以自行选择,但注意tesseract-ocr3.02.02需要1.69版本以上的leptonica。其他包之间的版本关系没有试过。
一次将上面列出的包解压:tar zxvf xxxx.tar.gz
然后进入解压后的目录执行:./configure && make && make install来配置编译安装。对于eng.traineddata.gz语言包,解压后需要将tesseract-ocr/tessdata下的文件拷贝到/usr/local/share/tessdata中(此步骤未验证是否必须)。
因为这里只安装了libpng的依赖包,所以只可以解析png的图片,其他格式的文件需要另外下载安装包,入libjp等等。
如果一切顺利,成功安装好了esseract-ocr,可以自己生成一张带有字母的png图片放入服务器中,切入esseract-ocr目录后执行
tesseract test.png test -l eng
如果成功会生成一个test.txt文件,文件内容即为识别出的文字字母内容。
如果报出以下错误:
Tesseract Open Source OCR Engine v3.02.02 with Leptonica Error in findTiffCompression: function not present Error in pixReadStreamTiff: function not present Error in pixReadStream: tiff: no pix returned Error in pixRead: pix not read Unsupported image type.
先检查leptonica版本是否支持tesseract-ocr的版本,再先检查libpng-1.5.8.tar.gz包(即支持图片依赖包)是否正确安装,如果正确安装后依然报同样的错误,将leptonica卸载后重装一遍(作者就是这么解决的)。
安装libjpg等,如无法安装,可用:
rpm -ivh --nodeps xxxx.rpm