linux系统如何使用tess4j(java)进行ocr图片文字识别

时间:2020-12-10 08:54:42

最近研究百度指数的采集,需要用到ocr,在网上找了很多材料,发现tesseract比较容易上手,而且可以自己训练,最重要的是,可以通过tess4j实现Java的JNA调用,如此一来,不但性能有保障,而且还可以跨平台。于是就在我的Windows机器上面创建了工程,参考着百度指数采集这篇博文的思路,写了代码,自己训练了数据样本,实现了百度指数的采集,感觉很开心。于是就想往Linux上面部署试试。结果遇到了问题。

首先,tess4j默认带有win32-x86-64 和win32-86 两个文件夹分别存放着64位和32位动态链接库,但是唯独没有Linux的动态链接库。于是我习惯性地从网上找相关材料,找了很久,只找到tess4j linux需要的so文件 - 下载频道 - CSDN.NET,以及

Linux——完全安装Tesseract环境 - Clare_0_0专栏 - 博客频道 - ... 但是这并不能解决我的问题,我尝试了so文件(放在自己新建的linux-x86-64目录下),

linux系统如何使用tess4j(java)进行ocr图片文字识别

linux系统如何使用tess4j(java)进行ocr图片文字识别


也安装了Tesseract环境,却出现了glibc版本不兼容,缺少libjpg.so这样的错误。我尝试一一解决这些问题(包括安装各种依赖包、安装和升级gcc、glibc),但是坑越挖越大,最后,发现这篇博文 CENTOS 下 编译安装 tesseract-ocr 3.0.4 识别文字  我按照博文的步骤安装了tesseract并进行了测试,结果成功实现了识别。这说明tesseract在我这个版本的Linux环境(centos 6.3)下没有兼容性问题。那么我的工程中对于依赖包的引用就有问题啦。根据上面的实验、分析,结合配置过程中的错误提示,最终总结出了Linux下支持tess4j的完整步骤(具体不同的系统操作上会有差别,但是原理一致):


1、安装GCC开发环境,从而支持后续程序的编译安装:
yum groupinstall "Development Tools"


2、安装tesseract所需的依赖库
yum -y install libjpeg* libpng* freetype* gd* giflib* libtiff* zlib*

3、安装tesseract和leptonica

注意: 安装完成后,将/usr/local/lib/ 目录下的so文件拷贝到 /usr/lib64/
cp /usr/local/lib/*.so.* /usr/lib64/

4、测试和验证

通过上述3步,就完成了tesseract所需的环境配置,你的tess4j相关的应用,就可以在本Linux系统上面溜溜的运行了。

百度指数的原始图片数据,百度对数据做了打乱和混淆处理:

linux系统如何使用tess4j(java)进行ocr图片文字识别linux系统如何使用tess4j(java)进行ocr图片文字识别


百度指数经过拼接后还原的图片数据(其中图片文件名即为tess4j识别的结果):

linux系统如何使用tess4j(java)进行ocr图片文字识别linux系统如何使用tess4j(java)进行ocr图片文字识别


完美!



参考: http://www.jianshu.com/p/361c97b4428a

淘宝爬虫 百度指数批量抓取 整体趋势 PC趋势 移动趋势 准确值


非常感谢上述博主的无私分享,也希望转载本文时注明出处!