首页 > 其他分享 >内网编译安装tesseract用于OCR识别

内网编译安装tesseract用于OCR识别

时间:2024-06-17 16:55:02浏览次数:14  
标签:OCR local 编译 version usr PATH tesseract 安装

 

需求:使用unstructured模块进行pdf内容识别及分块,需要本地安装了tesseract-ocr,以支持pytesseract

* 在Windows,可以直接安装tesseract-ocr;在Ubuntu,可以用apt install tesseract-ocr安装相关环境及依赖

 

当安装源里没有tesseract时,由于tesseract有很多依赖包,直接用deb包或者rpm包等安装包安装很复杂,不一定能成功安装。

用本地编译的方式安装会方便很多。 ——参考博客123

 

1. 编译需要满足的基础的依赖环境(系统不一定都有,需要检查一下)

yum install -y autoconf automake libtool libjpeg* libpng* libtiff* zlib*  gcc gcc-c++ # 以centos系统为例

 

2. 安装Leptonica(tesseract要用)

  去Leptonica网站下载源码,解压。下面以1.82.0的版本为例。

tar -xzvf leptonica-1.82.0.tar.gz
cd leptonica-1.82.0
./autogen.sh
./configure --prefix=/usr/local/leptonica
make  -j 8 && make install

  将Leptonica添加环境变量,编辑 /etc/profile,并添加下列内容:

export LD_LIBRARY_PATH=/usr/local/lib
export LIBLEPT_HEADERSDIR=/usr/local/include
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

  再使配置的环境变量生效

source /etc/profile # 刷新配置

 

3.  编译安装Tesseract-OCR

  从GitHub官网下载源码,解压并编译安装。

tar -xzvf tesseract-5.4.1.tar.gz
cd tesseract-5.4.1
./autogen.sh                    # 必须先运行autogen.sh文件才会有configuer文件
./configure --prefix=/usr/local/tesseract  # 编译安装到指定文件夹
make -j 8 && make install

   更新环境变量,为/etc/profile添加如下内容

PATH=$PATH:/usr/local/tesseract/bin
export TESSDATA_PREFIX=/usr/local/tesseract/share/tessdata    # 该变量必须有
export PATH=$PATH:$TESSDATA_PREFIX
source /etc/profile

  测试安装结果

tesseract -v
# 输出应该如下
tesseract {version}
leptonica-{version}
libjpeg 6b (libjpeg-turbo {version}) : libpng {version}: libtiff {version} : zlib {version} : libwebp {version}
Found AVX2
Found AVX
Found FMA
Found SSE

* 其中libjpeg、libpng、libtiff等不全也不要紧,还是看最终的使用效果

 

4. 获取字符集

  有了字符集,OCR才能根据字符集识别具体的文字。

  从Tessdata获取字符集:eng.traineddata,chi_sim.traineddata,chi_sim_vert.traineddata,添加到 /usr/local/tesseract/share/tessdata/ 目录下。

tesseract --list-langs # 查看支持的语言

 

标签:OCR,local,编译,version,usr,PATH,tesseract,安装
From: https://www.cnblogs.com/grainrain/p/18252700

相关文章

  • 交叉编译python第三方库
    这里我们以编译androidpython程序为例工具crossenv名词对于交叉编译的各个部分,没有标准的词汇表,不同的资源经常会使用相互矛盾的术语。为了避免混淆,我们只使用GNU术语,这是Python本身使用的。host就是你编译出来的包要运行的平台,比如这里是Androidbuild进......
  • 编译安装qemu-devel @FreeBSD
    缘起使用cbsd创建riscvjail的时候提示:youhavenoqemu-user,pleaseinstallqemu-devlewithBSD_USERandSTATICops(emulators/qemu-devel)使用pkg安装之后,创建的riscvjail启动报错:Startingjail:fbriscv,paralleltimeout=5chroot:/bin/sh:Execformaterr......
  • Nim 是一种现代的编程语言,它结合了多种编程范式,包括编译型、静态类型以及系统级编程。
    Nim是一种现代的编程语言,它结合了多种编程范式,包括编译型、静态类型以及系统级编程。以下是对Nim语言的详细介绍:什么是Nim语言?Nim(最初称为Nimrod)是一种编程语言,设计目标是提供高效、安全且易于使用的工具来进行系统级和应用级编程。Nim语言的主要特点包括:静态类型:在编......
  • 一篇文章教你如何解决vs编译器中,库函数scanf的正常使用!!!
    前言:这将是我写的第二篇博文了,以后我将会坚持每天花固定时间来写博客,希望我当我写了一定数量的文章之后,我自己简单的就能够写出质量优秀文章来,加油!!!一、scanf函数无法正常使用的原因1.错误实例在vs中如果想直接实现并使用scanf函数,很抱歉直接使用,用不了,因为编译器压根就......
  • 编译原理四部曲
    编译原理四部曲从.c文件到可执行文件的编译过程主要包括四个步骤,每个步骤都会生成特定的文件。以下是这四个步骤及其生成的文件:预处理:任务:处理源代码中的预处理指令,如#include、#define等。生成的文件:通常是一个后缀为.i的文件,这是一种中间代码文件,表明这些文件是经过预处理......
  • C语言详解(预编译)
    Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎~~......
  • 源码编译安装LAMP
    一、LAMP架构1、概述LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。2、LAMP......
  • 编写一个 Makefile 文件,对阶段项目一的代码进行自动化编译
    为了编写一个Makefile文件来自动化编译一个项目,我们需要知道项目中包含哪些源文件以及它们是如何组织的。假设我们有一个简单的项目,它包含两个C源文件`main.c`和`helper.c`,以及一个头文件`helper.h`。我们希望编译这些文件生成一个名为`project`的可执行文件。以下是一个简单的M......
  • 用Ubuntu24编译打包6.9.4内核(仅供参考)
    目录环境介绍前期安装下载内核源代码并编译打包并更新内核重启无法进入系统问题注意事项环境介绍Ubuntu24/4U/12G/120G/NAT172.16.186.148/24rambo@test1:~$uname-aLinuxtest1.lab.example.com6.8.0-35-generic#35-UbuntuSMPPREEMPT_DYNAMICMonMay2015:51:52UT......
  • NGINX编译安装sticky
    提醒:目前sticky支持nginx22及以下版本,新版我试了24和26均会编译报错1、下载nginx安装包2、解压进到编译目录,有configure的目录,执行以下命令./configure\--prefix=/usr/local/nginx\--with-file-aio\--with-threads\--with-http_addition_module\--with-http_auth_reques......