当前位置: 首页 > news >正文

win10 vs2015源码编译tesseract4.0

1.安装软件

  • cmake  下载地址
  • cppan   下载地址

安装完毕后,需要将cmake.exe和cppan.exe加入环境变量PATH中

cmake简介

CMake全称为“cross platform make”,是一个开源的跨平台自动化构建系统。使用指定名为CMakeLists.txt的配置文件可以控制软件的构建、测试和打包等流程。同时,通过编写平台无关的CMakeLists.txt文件进行简单的配置,CMake就能生成对应目标平台的构建文件。例如:linux系统的makefile文件、Windows的项目和解决方案(.sln)。

配置包括: 创建哪些项目、项目间的依赖关系、include哪些头文件、编译时生成静态库,动态库还是可执行文件、以及生成的版本: (x86,x64)等。

cppan简介

CPPAN是建立在CMake之上具有构建系统功能的跨平台C / C ++依赖管理器。 它支持快速的脚本式编码和原型制作以及处理大型项目。 可以很方便的查找、共享和重用库以及发布您的项目。你只需要将时间花在代码上,而不需要管理依赖关系。 CPPAN帮您将包装时间降低至几秒钟!它支持简单的交叉编译,继承并且把你自己的设置、标志推送到每个依赖。

CPPAN之于C++就像Maven之于Java。CPPAN可以理解为C++的包管理器,包含了众多依赖包,只需要向CPPAN指定依赖包,CPPAN就会帮你下载好需要的依赖包和相关配置。

CPPAN通过cppan.yml文件配置相关依赖项目。

通过dependencies指令说明依赖项,这里依赖leptoncia,对应的版本为1,这里1表示1.*.*,也就是主版本为1的都可以。

cppan简单使用

 

 2.  生成解决方案(.sln)

下载tesseract源码:

git clone https://github.com/tesseract-ocr/tesseract tesseract

生成x64版本的解决方案

cd tesseract   # 进入源代码目录
cppan    # 下载相关的的依赖,【下载时间可能很长,需要耐心等待】
mkdir win64 && cd win64
cmake .. -G "Visual Studio 14 2015 Win64"

生成x86版本的解决方案

cd tesseract
cppan
mkdir build && cd build
cmake ..

3. 编译

这里选择x64版本, 打开win64目录下的tesseract.sln,这里选择release模式。选择”生成" -> "生成解决方案"

 

编译过程中会遇到很多错误,如C2001和C3668,如图:

g_set_error (error, G_KEY_FILE_ERROR,
                       G_KEY_FILE_ERROR_UNKNOWN_ENCODING,
                       _("Key file contains unsupported "
             "encoding “%s”"), value_utf8);

# 上面代码中出现了中文双引号

错误的原因:

其实都是文件编码问题。下载得到的文件编码为UTF-8(不带签名),而Visual Studio (中文版)默认保存的文本文件是GB2312编码,对于UTF-8编码的某些字符,在中文版VS下就容易因解码错误导致乱码造成编译错误。

解决方法: 只需要双击对应的错误,跳转到对应的文件,然后点击左上角菜单 “文件选项" 下的"高级保存选项",选择unicode(utf-8带签名).保存后再“生成"即可。

需要修改的文件:

 

UTF-8 带签名或者UTF-8 无签名区别:

带签名比无签名开头多了BOM 信息,UTF-8 的 BOM 是 0xEFBBBF,带签名的将更容易被解析器以正确的编码方式进行解析。

 

建议:

先"生成”项目"cppan-d-b-d", 再“生成"整个解决方案

遇到错误,双击错误,进入错误提示行后,点击左上角菜单 “文件"下的"高级保存选项",选择unicode(utf-8带签名).保存后右击项目选择"生成",逐个解决错误。

 

效果:

 

4.安装

找到CMakeTargets中的INSTALL,然后右键选择仅限于项目–>仅生成INSTALL

 此外, 还需要将win64\bin\Release目录下的dll拷贝到install\bin目录下

 64位默认安装位置为C:/Program Files/tesseract,因此安装需要管理员权限

错误提示如下:

 

修改程序安装位置

 

# 通过指定CMAKE_INSTALL_PREFIX设置安装目录
cmake -D CMAKE_INSTALL_PREFIX=D:/tesseract/install -G "Visual Studio 14 2015 Win64" .. 

 

打开解决方案所在目录下的CMakeCache.txt, 查看CMAKE_INSTALL_PREFIX 配置修改是否生效

 

 

 5. 环境变量配置

  • 将tesseract.exe所在路径加入环境变量PATH中
  • 添加环境变量TESSDATA_PREFIX,其值为tessdata目录所在路径

训练文件下载下载地址:  https://github.com/tesseract-ocr/tessdata 

没有设置TESSDATA_PREFIX,在命令行使用tesseract会出现如下提示:

 

参考: https://github.com/tesseract-ocr/tesseract/wiki/Compiling#windows

转载于:https://www.cnblogs.com/hupeng1234/p/8545371.html

相关文章:

  • Go语言备忘录(2):反射的原理与使用详解
  • ubuntu16.04 更换源
  • Django中间件middleware
  • 结构图
  • libimobiledevice --Mingw32交叉编译
  • 在c:forEach作用域外使用标签所产生的值
  • 04-手机套餐:建造者模式
  • css总结1:position定位:absolute/relative/fixed
  • zzw原创_非root用户启动apache的问题解决(非root用户启动apache的1024以下端口)
  • SQL循环语句 详解
  • OpenCV问题集锦
  • 20154327 Exp1 PC平台逆向破解
  • ios 通知与通知传值2018.03.17
  • 20155307《网络对抗》PC平台逆向破解(二)
  • 273. Integer to English Words
  • python3.6+scrapy+mysql 爬虫实战
  • 08.Android之View事件问题
  • AngularJS指令开发(1)——参数详解
  • C++11: atomic 头文件
  • Effective Java 笔记(一)
  • emacs初体验
  • exif信息对照
  • JAVA 学习IO流
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Linux下的乱码问题
  • SpiderData 2019年2月13日 DApp数据排行榜
  • 大数据与云计算学习:数据分析(二)
  • 解决iview多表头动态更改列元素发生的错误
  • 马上搞懂 GeoJSON
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 我的业余项目总结
  • 无服务器化是企业 IT 架构的未来吗?
  • 携程小程序初体验
  • 应用生命周期终极 DevOps 工具包
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • (11)MSP430F5529 定时器B
  • (ros//EnvironmentVariables)ros环境变量
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (已解决)什么是vue导航守卫
  • (转)http协议
  • (转)人的集合论——移山之道
  • .java 9 找不到符号_java找不到符号
  • .NET MVC 验证码
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET分布式缓存Memcached从入门到实战
  • .NET基础篇——反射的奥妙
  • /*在DataTable中更新、删除数据*/
  • /var/log/cvslog 太大
  • @Query中countQuery的介绍
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节
  • [04]Web前端进阶—JS伪数组
  • [1525]字符统计2 (哈希)SDUT
  • [ACM] hdu 1201 18岁生日
  • [Android]使用Retrofit进行网络请求