Tesseract-OCR4.0版本在VS2015上的编译与运行(转)
最近刚开始接触识别库引擎方面的知识,由于项目中需要使用光学识别处理模块,在老师与朋友的推荐下,我开始接触tesseract光学识别库,在最开始从GitHub上下载的源代码进行编译的时候,出现了许多意想不到的问题,为了先完成项目,我借鉴相关博客上针对tesseract3.04以下版本在VS2013上的编译方法,先在VS2013上运行tesseract,然而无法在VS2015上成功编译源代码,这让我一直纠结着,终于在和我们公司的齐工的一次探讨中,我们尝试了一种新的编译方法,测试结果显示编译成功,tesseract成功运行。
对于tesseract4.0的编译我将它分为五个步骤:
1.预处理部分,下载编译工程所需要的cmkae与cppan软件,并设置相应的环境变量,从GitHub上下载tesseract的相应源代码;
2.在解压的tesseract目录下运行cppan,下载一些图片解压缩等需要的lib与dll;
3.mkdir build目录,即在tesseract目录下新建一个build文件夹;
4.进入build目录,运行cmake,等待10到20分钟,即可生成VS2015项目所需的工程文件;
5.在编译成功的环境下,进入build目录下后缀为sln的工程文件,利用VS2015打开;
6.编译工程目录下的libtesseract工程文件,这时会出现报错现象,这是由于编程语言编码问题造成的,我们需要修改相应的编码格式,使其生成相应的lib与dll;
7.将目录下生成的lib与库文件路径添加到tesseract工程文件下的链接器输入与VC++目录中,点击生成,即可生成相应的.exe文件;
8.在我的电脑高级属性环境变量中添加名为TESSDATA_PREFIX的变量,其值为tesseract文件夹下tessdata文件夹的地址。
好了到这里我们就算大功告成了。
接下来我会一步一步的进行操作:
1预处理部分,下载相应的软件与源代码:
由于编译过程中相应的支持库是由cppan下载的,我们需要下载cppan并设置其环境变量,cppan的下载地址为:
官网网址链接为https://cppan.org/client/
我下载的是cppan-master-Windows-client.zip文件,解压缩以后就是一个cppan.exe文件,如下图所示:
接下来是设置环境变量,右键点击“我的电脑”,点击属性,在弹出的系统属性对话框中,选择高级,点击进入环境变量,在系统变量里面选择PATH变量,将cppan.exe所在的文件路径作为环境变量的值,这里我们就算是配置好cppan了。
然后是下载最新的cmake,并进行配置环境变量:
cmake官网下载地址为https://cmake.org/download/
我的电脑是X64版本的,所以我下载的是Windows win64-x64下的下载链接,即cmake-3.8.0-win64-x64.zip文件,解压缩以后将cmake-3.8.0-rc2-win64-x64目录下的bin文件夹的目录地址加载至系统环境变量PATH中,与cppan设置环境变量的方法一致。
预处理的最后一步是从GitHub上下载tesseract4.0的源代码,下载的地址是
https://github.com/tesseract-ocr/tesseract
在该界面下选择clone or download,如下图所示
然后我们解压缩,将其中所有的文件复制到我们新建的文件夹tesseract下(我个人觉得tesseract名字短,使用方便)
2运行cppan,下载相应的支持库
我使用的win10系统,所以在左下角Windows图标下鼠标右键单击,在弹出的界面中选择WIndows PowerShell管理员(A)选项,在运行cppan过程中,有可能杀毒软件会报错,可以先关闭杀毒软件。
将盘符切换到tesseract文件夹所在的盘,即输入相应盘的名称即可,我的tesseract在G盘,我输入的是G:,回车键即进入了G盘,如下图所示:
由于我昨天在G盘下才创建了一个tesseract的工程,我们将测试的tesseract放置在E盘下,直接E:即可切换到E盘下,输入命令cd tesseract即可进入tesseract文件夹下,如下图所示:
在该目录下,我们继续在Windows PowerShell下运行命令cppan然后回车,等待cppan程序运行,(安装电脑管家的记得在运行此步骤之前关闭电脑管家,不然杀毒软件将cppan识别为病毒会自动退出命令行)如下图所示:
3 tesseract文件夹下新建build文件夹,并进入build文件夹
在命令行中输入mkdir build即可新建一个build文件夹,然后cd build进入该目录中,如下图所示
可以在文件夹中查看是否新建了build文件夹,如下图所示:
你看下面是不是已经有了,build文件夹,这个文件夹是用来存放生成的VS2015的项目工程文件
4 运行cmake进行编译生成工程文件
我们继续在刚才运行的Windows PowerShell下运行以下命令
cmake . .
!!!注意后面两个dot不能省略
运行情况如下图所示:
你看正在生成关于VS2015的工程文件,做到这里我们可以去喝杯咖啡或者茶休息会了,因为编译时间大概为10到20分钟,具体的情况要看各位的电脑了。
到这里我们已经成功生成VS2015的工程文件了,接下来的步骤就是进入VS2015中进行具体的操作啦!
进入工程文件,编译libtesseract
在build目录下找到tesseract.sln文件,用VS2015打开该文件;
在菜单中选择生成解决方案的生成选项,由于是第一次进行生成,未进行任何修改,应该会报错的
我们等待它进行生成,这个过程中对CPU的占用率差不多是100%,有可能在运行其他程序时出现卡顿,但这是正常的现象,编译过后就不会出现这种情况了
这时出现了错误
上图中第一个错误是由于编码原因造成的,我们点击错误,进入生成该错误的文件中
在第250到251行出现错误,我们在菜单栏中点击文件目录下的高级保存选项
进入之后,将编码由Unicode(UTF-8无签名)更换为简体中文(GB2312)-代码页936
然后再进行生成,这时显示已经成功生成
然后进入tesseract工程下,右键选择生成
等待片刻后即可成功生成
再回到该文件所在的目录中,查找生成的工程文件
你看所有的文件都在此文件夹下面啦,然后我们去配置TESSDATA_PREFIX环境变量
配置TESSDATA_PREFIX环境变量
在tesseract目录中的tessdata文件下应该要下载eng.traineddata文件,这是英文的训练文件,大家按照自己的需要下载需要的文件
下载地址是https://github.com/tesseract-ocr/tessdata
也可以在后期的项目需要中,训练自己的识别库
然后再我的电脑中系统变量中新建一个名为TESSDATA_PREFIX的变量,该变量的值为tessdata文件夹的路径,设置好以后,记得使环境变量生效(ps前面设置环境变量也是要记得使环境变量生效)
测试生成的目标文件
我们随便找了一张图片,命名为binary.tiff;
然后运行cmd命令tesseract.exe binary.tiff out
这时已成功生成out.txt
打开out.txt文件
这时编译的文件已可以开始进行识别工作,做到这里也算是大功告成了!
Tesseract-OCR4.0版本在VS2015上的编译与运行(转)的更多相关文章
- 国产计算框架Mindspore1.3.0 gpu源代码中的cmake文件存在问题(bug),openmpi的url错误,导致不能正常编译——成功解决mindspore-gpu-1.3.0版本不能从源代码中编译的问题
mindspore 的 r1.3 分支 在gpu方式编译下存在问题,无法编译,具体编译结果参考: https://www.cnblogs.com/devilmaycry812839668/p/1505 ...
- qtav----ffmeg在ubuntu和win10上的编译和运行
最近在windows上和ubuntu上都安装了qtav并且通过了编译测试,实测播放中英文的视频文件功能正常,有图像有声音. 大致情况是,操作系统ubuntu: wkr@sea-X550JK:~$ ca ...
- Linux上VsCode编译打包运行
前提:最好使用root用户可以排除一些不必要的错误. 一. 准备环境 Node.js(>= 8.12.0, < 9.0.0) Python2.7 Yarn(可以通过npm install ...
- LitepalNewDemo【开源数据库ORM框架-LitePal2.0.0版本的使用】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本Demo使用的是LitePal2.0.0版本,对于旧项目如何升级到2.0.0版本,请阅读<赶快使用LitePal 2.0版本 ...
- 社会单位消防安全户籍化管理系统——半自动提交V1.0版本
社会单位消防安全户籍化管理系统——半自动提交V1.0版本 首先先上代码,开发这个小程序其实是用来帮助同事完成一项每天都做的繁琐事件,以往需要花费十分钟做这件事情,现在就是傻瓜式,点几下鼠标就好了.本来 ...
- 如何让基于.NET 2.0的应用在高版本的系统上运行?
我们的WinForm项目是基于.NET 2.0开发的,在部署时,发现有些机器没有.NET 2.0,但是即使这些机器有装.NET 2.0 以上的版本,也无法运行我们的程序.这就比较蛋疼了. 我们查了一下 ...
- win10 vs2015源码编译opencv、opencv_contrib、Tesseract
1.软件包准备 opencv源码包地址: 官网 github opencv_contrib源码包地址: github Tesseract源码包地址: ...
- tesseract-ocr如何训练Tesseract 4.0
引自:https://blog.csdn.net/huobanjishijian/article/details/76212214 原文:https://github.com/tesseract-oc ...
- .NET Core 2.0版本预计于2017年春季发布
英文原文: NET Core 2.0 Planned for Spring 2017 微软项目经理 Immo Landwerth 公布了即将推出的 .NET Core 2.0 版本的细节,该版本预计于 ...
随机推荐
- go语言学习--map的并发
go提供了一种叫map的数据结构,可以翻译成映射,对应于其他语言的字典.哈希表.借助map,可以定义一个键和值,然后可以从map中获取.设置和删除这个值,尤其适合数据查找的场景.但是map的使用有一定 ...
- docker镜像创建redis5.0.3容器集群
拉取redis5.0.3镜像 # docker pull daocloud.io/library/redis:5.0.3 [root@localhost ~]# docker pull daoclou ...
- Jmeter(十五)Logic Controllers 之 while Controller
while Controller是控制循环的Controller,条件判断的Controller.先看看官方Demo. while Controller控制它的子对象,直到false为止.并且还提供了 ...
- [UE4]优先级与相关性
一.优先级 每个 Actor 都有一个名为 NetPriority 的浮点变量.这个变量的数值越大,Actor 相对于其他“同伴”的带宽就越多.和优先级为 1.0 的 Actor 相比,优先级是 2. ...
- [UE4]自动旋转组件
- UI 性能因素考虑
浏览器的最大并发连接数一般在4到6之间,首先了解影响加载的性能因素: (1)下载的文件太大 (2)发出的请求太多 (3)请求相应不及时 针对这些因素,一般会考虑减少请求次数: (1)对静态文件设置缓存 ...
- 有关于Integer的一些小问题
先看一小段源码: Integer a1=; Integer a2=; Integer b1=); Integer b2=); Integer c1=; Integer c2=; System.out. ...
- cocos源码分析--ClippingNode绘图原理
在OpenGL 绘制过程中,与帧缓冲有关的是模版,深度测试,混合操作.模版测试使应用程序可以定义一个遮罩,在遮罩内的片段将被保留或者丢弃,在遮罩外的片段操作行为则相反.深度测试用来剔除那些被场景遮挡的 ...
- Visual Studio 2012 & MyEclipse2015 快捷键对比
- [Ahoi2013]差异(后缀自动机)
/* 前面的那一坨是可以O1计算的 后面那个显然后缀数组单调栈比较好写??? 两个后缀的lcp长度相当于他们在后缀树上的lca的深度 那么我们就能够反向用后缀自动机构造出后缀树然后统计每个点作为lca ...