欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-06 11:04:47
...

 

安装

  • 安装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

如果能出现

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

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

测试的语句:(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的步骤和错误汇总。

 

相关标签: Tesseract