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 版本的细节,该版本预计于 ...
随机推荐
- 利用队列Queue实现一个多并发“线程池”效果的Socket程序
本例通过利用类Queue建立了一个存放着Thread对象的“容器对象”,当Client端申请与Server端通信时,在Server端的“链接循环”中每次拿出一个Thread对象去创建“线程链接”,从而 ...
- win10家庭版怎么开启Administrator超级管理员帐户
一.win10家庭版开启administrator方法: 1.通过Cortana搜索cmd,匹配出“命令提示符”,右键以管理员身份运行: 2.在打开的命令提示符窗口输入net user admin ...
- PHP正则配合写配置文件导致Getshell
PHP正则配合写配置文件导致Getshell,偶然间看到的一个题目, p 牛的小密圈的一个问题. 分析一下,漏洞代码: index.php <?php $str=addslashes($_GET ...
- Spring之Ioc原理
ioc 控制反转 使用的 单例模式 和 工厂模式 单例模式保证创建对象的唯一性 工厂模式实现解耦合的作用 通过dm4j类似的技术读取xml文件中bean标签的属性值,id和class 利用反射技术和c ...
- XrmToolBox 连接
- OpenJudge 求重要逆序对数
https://blog.csdn.net/mrvector/article/details/81090165 [题解] 方法与求逆序对的个数类似,用归并排序分治求解.不同之处在于添加了一个虚拟指针p ...
- C# 生成日期维度值
1. 时间维度表结构 /*==============================================================*/ /* Table: dim_date_day ...
- C++使用Mysql的详细步骤及各个常用方法的代码演示:select,insert,update,delete
这几天一直在学习C++下使用Mysql的方法及其中各种的问题,也看了很多Mysql的API函数,当然自己看的还是很基础的.其实对于每种数据库的操作,基本的方法都是非常类似的,大多都是connect,s ...
- hive使用map字段
create table role_bigtable(table_name string, record_date string, server_id string, map_col map<s ...
- gt,gte,lt,lte缩写的含义
gt: greater than 大于 gte: greater than or equal 大于等于 lt: less than 小于 lte: less than or equal 小于等于