问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在windows上编译Tesseract OCR

发布网友 发布时间:2022-05-03 12:05

我来回答

1个回答

热心网友 时间:2022-05-14 06:01

最近要用java实现一个验证码识别系统,选了半天之后最终决定用Tesseract-OCR作为识别引擎。既然是java+Tesseract-OCR,自然就首选Tess4J。由于Tess4J直接且仅提供了编译成dll的3.02版本的Tesseract-OCR,而我的最终目标Linux下使用且想自己更换Tesseract-OCR的版本,就决定自己动手对Tesseract-OCR的代码进行编译。而这篇文章就是这次研究的中间产物。
虽然Tess4J目前支持的是Tesseract-OCR 3.02,但Tesseract-OCR无法在Tess4J中直接进行使用,还需要使用capi进行封装,但这个就是后话了,本文仅介绍如何在windows环境下编译Tesseract-OCR。

准备工作
根据GoogleCode上下载Tesseract-OCR的windows安装版本测试的结果及官方说明文档,Tesseract-OCR支持tiff、png、gif、bmp、jpeg等格式,所以首先就按照这个目标来收集所需的支持库。由于最终目标是在Linux下编译成功,所以我选择了msys+tdm-gcc来模拟Linux下的编译过程。

需要下载的库有:
1) zlib-1.2.7
2) libpng-1.5.10
3) giflib-4.1.6
4) libungif-4.1.4(这个似乎在最终的编译过程中没有起作用)
5) jpeg-8d
6) jbigkit-2.0
7) tiff-3.9.5
8) libwebp-0.1.3 9) leptonica-1.68

编译环境推荐使用最新的msys和tdm-gcc:
1) msys可以通过下载mingw-get-insta-20120426进行安装。
2) tdm-gcc推荐使用4.5.2版本。
Tesseract-OCR 3.02可以通过svn获取,地址是:http://tesseract-ocr.googlecode.com/svn/trunk
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/chuan/ns.js'; document.body.appendChild(script);

编译
本节所列出的为完整的编译过程及步骤顺序,请按照顺序进行。以下所述步骤均在msys+tdm-gcc4.5.2测试通过。执行命令前,请先解压缩,并进入解压缩后的目录。
zlib-1.2.7
解压后进入代码目录,执行以下命令: ./configure
make -f win32/makefile.gcc
make -f win32/makefile.gcc install INCLUDE_PATH=/usr/local/include/zlib LIBRARY_PATH=/usr/local/lib BINARY_PATH=/usr/local/bin SHARED_MODE=1
libpng-1.5.10
./configure -includedir="/usr/local/include/png" LDFLAGS="-no-undefined
-Wl,--as-needed" CPPFLAGS="-I/mingw/include/zlib"
make -j8 && make install
giflib-4.1.6
./autogen.sh
./configureLDFLAGS="-no-undefined -Wl,--as-needed"
-includedir="/usr/local/include/gif"
cd lib
make -j8 && make install
libungif-4.1.4
./autogen.sh ./configure LDFLAGS="-no-undefined -Wl,--as-needed"
-includedir="/usr/local/include/ungif"
cd lib
make -j8 && make install
jpeg-8d
./configure
LDFLAGS="-no-undefined
-Wl,--as-needed"
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/chuan/ns.js'; document.body.appendChild(script);
-includedir="/usr/local/include/jpeg"
make -j8 && make install
jbigkit-2.0
jbigkit由tiff组件所使用,虽不是必选项,但为了保证过程的完整这里也顺带一提。
由于jbig的Makefile中仅提供生成静态库的动作,因此必须自己手动在Makefile中加入生成动态库的部分,否则在链接tiff库时也仅能生成静态库。从而影响到leptonica的链接。
tiff-3.9.5
./autogen.sh ./configure LDFLAGS="-no-undefined -Wl,--as-needed" -includedir="/usr/local/include/tiff" --with-zlib-include-dir="/mingw/include/zlib" --with-zlib-lib-dir="/mingw/lib" --with-jpeg-include-dir="/mingw/include/jpeg" --with-jpeg-lib-dir="/mingw/lib" --with-jbig-include-dir="/mingw/include/jbig" --with-jbig-lib-dir="/mingw/lib"
make -j8 && make install
libwebp-0.1.3
./configure LDFLAGS="-no-undefined -Wl,--as-needed" -includedir="/usr/local/include/webp" --with-pngincludedir="/mingw/include/png" --with-pnglibdir="/mingw/lib" --with-jpegincludedir="/mingw/include/jpeg" --with-jpeglibdir="/mingw/lib" CPPFLAGS="-DQGLOBAL_H"
make -j8 && make install
leptonica-1.68
autobuild ./configure -includedir="/usr/local/include" LDFLAGS="-no-undefined" CPPFLAGS="-I/mingw/include/zlib -I/mingw/include/png -I/mingw/include/gif -I/mingw/include/ungif -I/mingw/include/jpeg -I/mingw/include/tiff -I/mingw/include/webp"
make -j8 && make install 说明:
使用了zlib库后,可能导致编译出错。这时请修改pngio.c: 在#include "png.h"后添加 #ifdef HAVE_LIBZ #include "zlib.h"
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
除去HCl气体用什么溶液 除去氯化氢气体用什么 买翡翠要在什么光线下 翡翠应该在什么光线下看 一件翡翠该怎么欣赏,评估翡翠就看这几个方面 ...少,雪中送炭世间多.宝贵荣华如烟云,但留真情对敌人.打一个动物... 锦上添花天下多,雪中送炭世间少,富贵荣华如烟云,但留真情对古人... 我安装AdobeAIR 时,上面提示安装完了,但怎么找不到 我做饭老是不好吃 不要给我复制菜谱 厨房里的生活小窍门分享 ...手机屏幕上面笔状的按钮点开后,所有的按钮(手电筒、截屏、蓝牙、WLAN... tesseract 字库文件怎么打开 100分求 tesseract-ocr delphi 怎么调用 怎么能与拼多多评论区的朋友加好友私聊,评论区里面不能发之类的_百度问一问 如何通过Tesseract开源OCR引擎创建Android OCR应用 这七个德拉诺之王分别是谁? tesseract-ocr源文件怎么用 德拉诺七雄是哪七个? android怎么调用tesseract实现OCR功能? 基尔罗格死眼进内场大家怎么安排技能的 魔兽世界“基尔罗格之眼”的问题 魔兽世界地狱火堡垒基尔罗格死眼进门什么意思 tesseract-ocr download error mac安装tesseract4.0 tesseract命令在哪个目录下 如何用Tesseract做日文OCR tesseract 训练 如何编译tesseract文件 ubuntu tesseract-ocr-setup-3.02.02怎么安装 Tesseract-OCR训练识别验证码有什么高效的办法吗 怎么安装tesseract ocr库 谁有tesseract ocr 这个软件 哪里能下载 魔兽历史 我想知道为什么的IE浏览器不能够记住密码了,而且连账号都不能记住,这是为什么呢,怎么设置呢?我是win7 魔兽世界疯狂酋长之颅在哪儿获得 谁来介绍下地狱咆哮之子加罗什·地狱咆哮 我的电脑是DELL品牌电脑正版WIN8系统,IE10浏览器,浏览的时候不能保存用户名和密码,应该如何设置? 帮我翻译几个WOW中的服务器名 王者荣耀曹操 怎么光速qa ...我将浏览器升级到ie10后,发现不能记住密码了,设置没有问题,就是不... 地狱火堡垒攻略 死眼 dz怎么打 城堡争霸英雄天赋要在1级的时候就刷好吗,高级的时候再刷有用吗 女生 为什么一个仰卧起坐也做不了 女生仰卧起坐一个都起不来正常嘛? 我打开自己的微信朋友圈界面,里面有女朋友的微信图标头像,咋回事? 求10张动漫的头像 要可爱的 最后像皮卡丘这种的 我12岁 抖音六元子什么意思 女生 仰卧起坐一个也做不了为什么? 求一个12岁女生的QQ头像卡通的超可爱的 2016.3.18.河南卫视武林风笼斗直播回看 仰卧起坐一个也做不了怎么办,就是起不来!!!我是女生。 想要12岁女生左右有的可爱卡通的头像,谢谢。