由于公司新的产品需要深度集成tesseract,所以需要在linux下和windows下源码编译安装tesseract,tesseract当前最新稳定版本是4.1.0,所以就从这个版本入手,编译的过程中碰到了不少困难,踩到了不少坑,所以特意分享出来,避免各位朋友再走弯路~~。
1、查看centos版本
#cat /etc/redhat-release
CentOS release 6.5 (Final)
2、查看gcc和g++版本
#gcc --version
#g++ --version
gcc至少应需要4.9.0以上的版本,本人是通过yum安装的6.3.1版本,通过yum安装gcc有如下好处:
1) 安装方便,特别是很多依赖的软件包自动安装;
2) gcc的版本可以灵活切换,老的版本得以保留。
3、检查yum的repo库
#yum repolist all
检查是否有如下的repo库,如果没有则下载repo库:
CentOS-SCLo-scl-rh.repo
安装软件包:
#yum -y install centos-release-scl-rh centos-release-scl
4、安装gcc 6.3.1
#yum -y install devtoolset-6-gcc devtoolset-6-gcc-c++
执行如下命令使gcc6立即生效
#source /opt/rh/devtoolset-6/enable
再次查看gcc和g++版本
#gcc --version
#g++ --version
如需永久生效则需要把命令添加到/etc/profile文件
vim /etc/profile
在最后添加如下内容:
source /opt/rh/devtoolset-6/enable
执行如下命令使之立即生效
#source /etc/profile
5、安装依赖库
#yum install autoconf automake libtool libjpeg-devel libpng-devel libtiff-devel zlib-devel
6、安装autoconf
查看本地的autoconf版本,如果过低则移除
#rpm -qa | grep autoconf
#rpm -e --nodeps autoconf-2.63
获得2.69版本autoconf
#wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
#tar xzvf autoconf-2.69.tar.gz
#cd autoconf-2.69
编译并安装
#./configure
#make
#make install
检查一下autoconf是否是2.69版本
#autoconf --version
7、安装autoconf-archive
本人安装的是2018.03.13版本,当然要选择高一些的版本啦
#wget http://mirrors.nju.edu.cn/gnu/autoconf-archive/autoconf-archive-2018.03.13.tar.xz
#xz -d autoconf-archive-2018.03.13.tar.xz
#tar xvf autoconf-archive-2018.03.13.tar
#cd autoconf-archive-2018.03.13
编译并安装
./configure
make
make install
最后一步很关键,必须把m4目录下的文件复制到/usr/share/aclocal/目录下,这些命令后面编译tesseract用得到,否则后面编译tesseract的时候会报command not found错误
#cp ./m4/* /usr/share/aclocal/
也可以去下面的网址下载其他版本,至少应下载2016版本以上吧
http://mirrors.nju.edu.cn/gnu/autoconf-archive/
8、安装leptonica
我安装的是leptonica-1.78.0版本
#wget http://www.leptonica.org/source/leptonica-1.78.0.tar.gz
#tar xzvf leptonica-1.78.0.tar.gz
#cd leptonica-1.78.0
编译并安装
#./autogen.sh
#./configure
#make
#make install
添加环境变量
#vim /etc/profile
最后添加如下内容
export LD_LIBRARY_PATH=$LD_LIBRARY_PAYT:/usr/local/lib
export LIBLEPT_HEADERSDIR=/usr/local/include
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
执行如下命令使之立即生效
#source /etc/profile
执行如下命令,确认有lept输出,如果没有,再检查上面的步骤吧。
#pkg-config --list-all | grep lept
也可以去下面的网址下载其他版本,至少应下载1.74版本以上吧。
http://www.leptonica.org/download.html
9、安装tesseract
最激动人心的来了,我们编译并安装tesseract当前最新的版本:4.1.0
#wget https://github.com/tesseract-ocr/tesseract/archive/4.1.0.tar.gz -O tesseract-4.1.0.tar.gz
#tar xzvf tesseract-4.1.0.tar.gz
#cd tesseract-4.1.0
编译并安装,如果有错误请检查以前的步骤
#./autogen.sh
#./configure
#make
#make install
安装完毕查看tesseract版本
#tesseract --version
4.1.0
可执行文件路径:
#which tesseract
/usr/local/bin/tesseract
语言包的路径:
/usr/local/share/tessdata
目前空空如也
10、下载tesseract语言包
去下面网址下载一些训练好的语言包吧
https://github.com/tesseract-ocr/tessdata_best
我们体验的时候只要下载英文和简体中文语言包即可:eng.traineddata、chi_sim.traineddata、chi_sim_vert.traineddata,看名称就很容易理解,前者为英文,后两个为简体中文,把这些语言包放到/usr/local/share/tessdata目录下
11、初体验tesseract识别
先体验英文识别,eng_test.jpg是我们准备的英文文字图片,eng_result.txt为输出结果:
#tesseract eng_test.jpg eng_result --psm 7
#vim eng_result.txt
英文的识别结果:18AX,不是很理想吧,但是要知道这个图片是个验证码,是不是可以破解一般的验证码了!
再体验一下中文识别,chi_sim_test.jpg是我们准备中文文字图片,chi_sim_result.txt为输出结果:
#tesseract chi_sim_test.jpg chi_sim_result -l chi_sim --psm 7
#vim chi_sim_result.txt
查看中文识别结果:益码通付平台,各位朋友也可以识别自己准备的中文图片,不理想的话也没关系,因为后续我们自己可以训练自己的语言包了。
下面简单介绍一下常用的参数
-l参数表示要用的语言包,chi_sim表示简体中文语言包,默认为英文;
--psm参数可以简单理解成图片中的文字的布局方式,默认为:3
0 = Orientation and script detection (OSD) only.
1 = Automatic page segmentation with OSD.
2 = Automatic page segmentation, but no OSD, or OCR.
3 = Fully automatic page segmentation, but no OSD. (Default)
4 = Assume a single column of text of variable sizes.
5 = Assume a single uniform block of vertically aligned text.
6 = Assume a single uniform block of text.
7 = Treat the image as a single text line.
8 = Treat the image as a single word.
9 = Treat the image as a single word in a circle.
10 = Treat the image as a single character.
原文地址:https://www.cnblogs.com/snakeskin/p/11296631.html