Tesseract 编译最小运行路径:从源码到跑通第一次识别

Tesseract 编译最小运行路径:从源码到跑通第一次识别 Tesseract 编译最小运行路径从源码到跑通第一次识别【免费下载链接】tesseractTesseract Open Source OCR Engine (main repository)项目地址: https://gitcode.com/GitHub_Trending/te/tesseractTesseract 是开源 OCR 引擎OCR 即光学字符识别把图片里的文字提取成文本当前源码版本为 5.5.0产物是命令行工具tesseract和 C 库libtesseract。本文面向需要在服务器上批量提取图片文字、或想把识别能力集成进自己应用的同学。读完你可以完成一次基础运行验证从源码编译出可执行文件并让它识别出一张图、吐出第一个结果文件。这个项目适合解决什么把扫描件、截图、照片里的文字批量转成纯文本或带版面信息的格式。命令行调用无图形界面依赖适合脚本和流水线场景。开箱支持 100 多种语言输出支持 txt、hOCR、PDF、TSV、ALTO、PAGE 等格式。除命令行动态链接库外还提供 C API见 src/api/capi.cpp方便嵌入应用。限制也说在前没有自带 GUI扫描件模糊、倾斜严重时准确率明显下降需要先做图像预处理。开始前的准备清单编译前确认四件事缺任何一件后面都会卡住一个支持 C17 的编译器。训练工具对编译器要求更高INSTALL.GIT.md 里列了明确的依赖清单。Leptonica 图像处理库开发版即可。最低版本要求写死在 CMakeLists.txt 里1.74。训练工具训练自己语言包的那套命令额外需要 pango、cairo、ICU 三类图形/文本处理库外加 automake 和 pkg-config。如果你只识别、不训练这些可以先不装。安装目录写权限make install需要 root 或 sudo。Ubuntu/Debian 上一条命令装齐依赖sudo apt-get install automake autoconf libtool pkg-config libpng-dev libjpeg-dev libtiff-dev zlib1g-dev libicu-dev libpango1.0-dev libcairo2-dev libleptonica-dev最小可运行路径源码到第一个结果拿到源码git clone https://gitcode.com/GitHub_Trending/te/tesseract cd tesseract提醒一点如果系统里已经装了 Tesseract 4.0x 旧版先卸载再编译新旧混装容易出奇怪问题。方式一CMake推荐跨平台mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX/usr/local make -j$(nproc) sudo make install sudo ldconfig注意 CMake 不允许在源码目录内直接生成必须像上面这样建独立的build目录否则会在第一步就报错。方式二Autotools./autogen.sh ./configure --prefix/usr/local make -j$(nproc) sudo make install sudo ldconfig放语言包不装语言包引擎跑不起来Tesseract 本身不含识别数据至少要放英文包eng.traineddata到数据目录sudo mkdir -p /usr/local/share/tessdata # 将 eng.traineddata 放入 /usr/local/share/tessdata/ export TESSDATA_PREFIX/usr/local/share/tessdata跑第一次识别tesseract test.png out成功的话当前目录会多出out.txt内容就是识别出的文字。影响体验的关键配置项编译时最常碰到的开关就这几个其余保持默认即可配置默认值作用什么时候改BUILD_TRAINING_TOOLSON是否编译语言训练工具不训练就设 OFF少依赖、编译更快USE_SYSTEM_ICUOFF用系统 ICU 还是自带 ICU系统 ICU 较新时可设 ON体积更小DISABLED_LEGACY_ENGINEOFF是否去掉旧版引擎旧引擎按字符模式匹配识别新版基于 LSTM 按行识别只用新版可设 ON 减小体积INSTALL_CONFIGSON是否安装配置文件这些配置放在 tessdata/configs/控制输出格式如 hocr、pdf和识别范围如 digits 只认数字运行时有两个参数也值得知道-l指定语言多语言用连接例如tesseract img.png out -l chi_simeng。--psm页面切分模式同一张图按整页/单块/单行不同方式切分对准确率影响很大。如何确认已经跑通按顺序看三个信号全过就说明环境是好的tesseract --version输出里显示tesseract 5.5.0并附带 Leptonica 版本及 libpng、libtiff、zlib 等依赖版本——编译链接关系正确。对一张清晰图片执行识别后当前目录生成了out.txt且内容可读——识别链路通了。执行tesseract --list-langs能列出你放过的语言包——语言目录配置正确。报错时按这个顺序排查现象编译阶段提示找不到 Leptonica可能原因没装开发版包或已装但版本低于 1.74。 处理安装libleptonica-dev用pkg-config --modversion lept确认版本不够就从 Leptonica 源码重新编译安装。现象运行时提示Error opening data file或找不到语言可能原因TESSDATA_PREFIX没设、指向的目录里没有对应traineddata。 处理echo $TESSDATA_PREFIX确认变量ls确认目录下确实有文件缺哪个语言就补哪个语言包。现象中文图片识别出来是乱码或空白可能原因没指定-l默认走英文模型。 处理加-l chi_sim可同时eng并确认对应语言包已就位。现象升级后行为异常、命令版本与预期不符可能原因旧版 4.0x 残留在 PATH 里新装的没生效。 处理先彻底卸载旧版再安装装完用which tesseract和tesseract --version双重确认。下一步可以做什么写一个批量脚本遍历目录逐张调用tesseract输出统一后缀的 txt这是最常见的生产用法。换--psm模式对比同一张图的输出差异找到你场景下的最优版面切分方式。用pdf配置输出带可搜索文本的 PDF或改用 C API参考 include/tesseract/capi.h把识别能力嵌进自己的服务。Tesseract 编译Tesseract 源码安装tesseract 语言包配置OCR 命令行工具tesseract 最小可运行路径【免费下载链接】tesseractTesseract Open Source OCR Engine (main repository)项目地址: https://gitcode.com/GitHub_Trending/te/tesseract创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考