Python图像处理之图片文字识别(OCR)

《Python图像处理之图片文字识别(OCR)》

   将图片翻译成文字一般被称为光学文字识别(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
点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注