在CentOS服务器上安装Tesseract完整版,附带解决错误的办法,Java程序进行图像识别

 

安装

  • 安装gcc、gcc-c++、make,如果有就不需要安装:
    yum install gcc gcc-c++ make
  • 安装编译相关工具,没有的话编译时候可能报错:
    yum install autoconf automake libtool
  • 安装对图片识别相关支持工具,没有这些在后续执行Tesseract命令时会报错,可以尝试一下:
    yum install libjpeg-devel libpng-devel libtiff-devel zlib-devel
  • 安装leptonica,首先去leptonica下载,下载后放到服务器解压并编译,leptonica是一个tesseract必须的工具:

下载链接:http://www.leptonica.org

#到leptonica的目录执行
./configure
make
make install

链接:https://github.com/tesseract-ocr/tesseract/archive/3.04.00.tar.gz

./autogen.sh
./configure
make
make install
ldconfig
  • 下载Tesseract语言包

https://github.com/tesseract-ocr/tessdata

然后复制tessdata到tess4j下(路径随意的,因为bash_profile可以更改,看你个人)

cp tessdata /usr/local/tess4j -R
  • 配置环境变量,否则在执行时会出现找不到语言包的错误:

vim ~/.bash_profile

加入一下内容

export TESSDATA_PREFIX=/usr/local/tess4j/tessdata

然后执行

source ~/.bash_profile

 

测试下:

tesseract -v

如果能出现

就说明安装已经成功!可以开始做识别测试了。

测试的语句:(test.png是已经进入这张图片的父目录才可以这样,否则请加绝对路径,比如/usr/local/test.png)(eng+chi_sim是同时识别英文和中文,请确认你下载好这两个训练包)

tesseract test.png out -l eng+chi_sim

然后(输出结果,如果结果差不多就证明Linux上可以用了!!!)

cat out.txt

 

错误汇总:

我在安装完,并且用上面语句测试确实能识别出相应的文字后,然后开始测试Java代码的识别。

有个错误很恼火:

java.lang.NoClassDefFoundError: Could not initialize class net.sourceforge.tess4j.TessAPI

这个初始化错误我现在总结四个解决办法:

①确认你的dataPath是否设置正确,最好吧tessdata文件夹放在代码项目的根目录

②确认你的代码lib包的版本和上面安装在服务器中的版本一致,比如上面所说的安装的是3.04版本,那你在springboot的maven中更换成3.0.0版

③so动态链接库确认复制好了没,如果没有,实用下面语句复制(将/usr/local/lib/ 目录下的so文件拷贝到 /usr/lib64/)

cp /usr/local/lib/*.so.* /usr/lib64/

④重启下服务器,让服务器自动加载下动态链接库

最好把四个步骤都做下,我就是做完这四个步骤后成功在Java项目中识别成功!

 

我的博客中还有Mac安装Tesseract的步骤和错误汇总。

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值