大家好,又见面了,我是你们的朋友全栈君。
在2021年1月份,cppan的官方网站关闭了,因此现在通过cppan自动下载tesseract所需要的环境依赖从而编译tesseract动态库的方式不可行。tesseract官方文档提供了通过sw下载环境依赖的编译方式,有兴趣的博友可以试试官方文档的方式。在这篇博客中将采用另外一种方式编译tesseract。tesseract依赖于leptonica,而leptonica又依赖于zlib、libjpeg、libpng、libtiff这4个运行库。因此我们一步步进行编译。
在zlib官网上下载zlib1211.zip,下载完成后解压,使用cmake+vs2015进行编译
cmake编译完成后,使用vs2015打开,先运行ALL_BUILD,接着运行INSTALL,就会在C盘生成zlib的运行库。
在jpeg官方下载jpeg最新版:jpegsr9d.zip ,接下来还需要下载一个win32.mak:下载地址,将下载的Win32.mak复制到jpeg的解压目录中,如下所示:
将目录下的jconfig.vc文件重名名为jconfig.h,然后打开vs2015的开发工具命令提示符,进入到jpeg的目录,输入命令:
nmake -f makefile.vc libjpeg.lib
编译成功后会生成libjpeg.lib
在libpng网站上下载lpng1637.zip,下载完成后解压,然后使用cmake编译,在第一次Configure完成后,在zlib这个选项改成编译好的zlib头文件目录以及lib文件
,然后使用vs2015打开工程,同样先运行ALL_BUILD,接着运行INSTALL
如上所示,成功生成了libpng的运行库。
在libtiff官网上下载tiff-4.3.0.zip,然后使用cmake,第一次Configure后更改下如下配置
更改jpeg和zlib目录为刚才生成库文件目录
然后点击Configure,接着点击Generate 用vs2015打开,首先执行ALL_BUILD ,接着运行INSTALL,这样就会生成tiff的运行库。
如上所示,生成tiff的运行库成功。
在leptonica的github地址上下载最新版:leptonica-1.80.0.zip。使用cmake编译,在第一次Configure后会提示sw错误,这是因为leptonica可以使用sw来自动下载zlib、jpeg、png、tiff的dll依赖,类似于之前用cppan下载一样,但我在这里已经编译好了如上4个库,所以把SW_BUILD取消掉
更改jpeg和png的头文件目录以及lib文件路径:
更改tiff以及zlib的头文件以及lib文件路径:
然后点击Configure,接下来点击Generate生成。
生成成功后,先运行ALL_BUILD
接下来点击INSTALL
如上所示,生成leptonica的静态库成功。
在tesseract官方网址上下载tesseract-4.1.1.zip,下载完成后解压。tesseract4.1需要libarchive,其实很多依赖安装了anaconda后会自动找那个位置的,有一种比较节省时间的做法,要编译32位的tesseract就安装32位的anaconda,要安装64位的就安装64位的anaconda。 当然libarchive的32位运行库可以从这个网站上下载 http://gnuwin32.sourceforge.net/packages/libarchive.htm
libarchive的64位运行库可以在github上下载,这个网址:
https://github.com/libarchive/libarchive/releases/tag/3.5.1
在我的电脑里选择安装32位的anaconda,这样很多依赖都可以用这个里面的,其实都可以不用编译zlib以及jpeg等库,直接都用anaconda环境下的运行环境也可以编译成功。
然后使用cmake,第一次Configure时,会出现错误,在这次cmake时,会自动找到leptonica的环境路径。
把BUILD_TRAINNING_TOOLS取消,重新Configure 这样就可以生成成功了
使用vs2015打开这个工程,首先右键ALL_BUILD,生成
可以看到4个项目都能够生成成功,接下来右键INSTALL,生成
libtesseract就生成成功了,就可以在vc环境下进行调用。
可见,通过这种方式生成的tesseract,比起使用cppan的要少很多dll,这种环境更加干净。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/187376.html原文链接:https://javaforall.cn