
将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR)。可以实现OCR 的底层库并不多,目前很多库都是使用共同的几个底层OCR 库,或者是在上面进行定制。
Tesseract 是一个OCR 库,目前由Google 赞助(Google 也是一家以OCR 和机器学习技术闻名于世的公司)。Tesseract 是目前公认最优秀、最精确的开源OCR 系统。
除了极高的精确度,Tesseract 也具有很高的灵活性。它可以通过训练识别出任何字体(只要这些字体的风格保持不变就可以),也可以识别出任何Unicode 字符。
安装tesseract
# yum install tesseract //此方法安装是3.0.4的版本
linux (centos7)上装Tesseract-OCR最新版本(5.0)
#yum install gtk2-devel yasm glibc.i686 libstdc++.so.6 libgtk-x11-2.0.so libatk-1.0.so.0 libcairo.so.2 libcups.so.2 libgdk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libgtk-x11-2.0.so.0 libpango-1.0.so.0 libpangocairo-1.0.so.0 libICE.so.6 libSM.so.6 libmng.so.1 libpng12.so.0 libGLU.so.1 -y
//安装工具包库
#yum groupinstall "Development Tools"
//安装支持的图像
# yum -y install libjpeg-devel libpng-devel libtiff-devel libwebp-devel giflib-devel
#安装leptonica1.7(4.0要修必须在1.74以上)
http://www.leptonica.org/download.html
# mkdir /usr/local/leptonica
# cd /usr/local/leptonica
wget http://www.leptonica.org/source/leptonica-1.74.4.tar.gz
wget http://www.leptonica.org/source/leptonica-1.79.0.tar.gz
# tar -xzvf leptonica-1.79.0.tar.gz
# cd leptonica-1.79.0
# ./configure --prefix=/usr/local/leptonica
# make && make install
//配置环境 加入以下内容
vi /etc/bashrc
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/leptonica/lib/pkgconfig
export PKG_CONFIG_PATH
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/leptonica/include/
export CPLUS_INCLUDE_PATH
C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/leptonica/include/leptonica
export C_INCLUDE_PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/leptonica/lib
export LD_LIBRARY_PATH
LIBRARY_PATH=$LIBRARY_PATH:/usr/local/leptonica/lib
export LIBRARY_PATH
TESSDATA_PREFIX=/usr/share/tesseract/tessdata/ //指定语言文件的目录!!!!!
export TESSDATA_PREFIX
最后刷新
source /etc/bashrc
//回到tesseract目录,开始安装
# ./autogen.sh
# ./configure --prefix=/usr/local/tesseract
# ./configure --prefix=/usr/local/tesseract --with-extra-includes=/usr/local/leptonica/include --with-extra-libraries=/usr/local/leptonica/include
//环境变量 加入
# vi /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PAYT:/usr/local/leptonica/lib
export LIBLEPT_HEADERSDIR=/usr/local/leptonica/include
export PKG_CONFIG_PATH=/usr/local/leptonica/lib/pkgconfig
//上面三行好像无效,下面两句有效
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/leptonica/include/leptonica
export CPLUS_INCLUDE_PATH
C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/leptonica/include/leptonica
export C_INCLUDE_PATH
//加载环境变量
# source /etc/profile
# make && make install
//备份旧的
# mv /usr/bin/tesseract /usr/bin/tesseract.back
//创建软链
# ln -s /usr/local/tesseract/bin/tesseract /usr/bin/tesseract
# tesseract -v
安装pytesseract
# pip3 install pytesseract
全部搞定,可以测试:
import pytesseract
import cv2
from PIL import Image
img = cv2.imread('./test15.jpg')
print(pytesseract.image_to_string(img,lang='eng'))
//lang='chi_sim') # chi_sim 中文
//res = pytesseract.image_to_string(Image.open('xx.jpg'),lang='chi_sim')
//print(res)
安装语言包
//将文件安装到这个目录下
/usr/share/tesseract/tessdata
https://github.com/tesseract-ocr/tessdata
https://github.com/tesseract-ocr/tessdata_best //经过训练 更好的包
查看当前支持的语言
# tesseract --list-langs
List of available languages (3):
eng
chi_sim
chi_tra