在vs2013上的编译tesseract-ocr

OCR(Optical Character Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程。

Tesseract:开源的OCR识别引擎,初期Tesseract引擎由HP实验室研发,后来贡献给了开源软件业,后经由Google进行改进,消除bug,优化,重新发布。当前版本为3.04.

1 准备工作

1.1 首先是安装vs2013 ultimate

需要注意的是用光盘镜像安装, 首先是用UltraISO将VS2013_RTM_ULT_CHS.iso mount到某个驱动器盘符,例如E:\下. (我采用rar直接解压ISO,发现安装失败,而采用mount ISO安装成功), 然后运行vs_ultimate.exe 安装即可.

1.2 下载tesseract-vs-master.zip和tesseract-vs2013-master.zip

到网站上直接下载zip:

https://github.com/charlesw/tesseract-vs

https://github.com/tesseract4java/tesseract-vs2013

也可以采用git clone方式:

$ git clone https://github.com/charlesw/tesseract-vs.git
     $ git clone https://github.com/tesseract4java/tesseract-vs2013.git

至此准备工作完成.

1.3 将上面的包解压到任意目录

本文采用c:\DEVPACK\tesseract-build-vs2013, 最后的目录结构如下:

c/DEVPACK/tesseract-build-vs2013/
                +---- tesseract-vs-master/
                +---- tesseract-vs2013-master/

2 编译 leptonica

leptonica是一个图像处理和图像分析的开源软件(如libpng, libtiff, libjpeg, zlib等)合集. 是C语言的库. tesseract的库依赖leptonica. 例如:

DEBUG: libtesseract304d.dll=>liblept171d.dll

RELEASE: libtesseract304.dll=>liblept171.dll

2.1 命令批处理编译

编译leptonica很简单, 首先通过 "开始菜单->所有程序->Visual Studio 2013->Visual Studio Tools->VS2013 开发人员命令提示", 进入命令行窗口, cd 到c:\DEVPACK\tesseract-build-vs2013\tesseract-vs2013-master目录下:

c:\DEVPACK\tesseract-build-vs2013\tesseract-vs2013-master>msbuild build.proj

......
    142 个警告
    0 个错误

已用时间 00:03:39.36

    c:\DEVPACK\tesseract-build-vs2013\tesseract-vs2013-master>

如果没有错误, 则编译好了leptonica. 上面的过程或者采用VS2013 IDE编译.

2.2 VS2013 IDE编译

vs2013打开tesseract-vs2013-master/tesseract.sln, 然后就直接编译. 如果需要修改项目配置, 建议采用这种方式编译.

------------------------------

采用以上任何一种方法,编译成功之后,把 tesseract-vs2013-master/release 下面的include, lib目录整体复制到: c:\DEVPACK\tesseract-build-vs2013\. 复制好的目录结构如下:

.../tesseract-build-vs2013/
            +---include/
            +---lib/
            +---tesseract-vs-master/
            +---tesseract-vs2013-master/

3 编译 tesseract

用vs2013打开tesseract-build-vs2013/tesseract-vs-master/vs2010/tesseract.sln, 修改下面2个文件的编码:

ccmain\equationdetect.cpp Save As Unicode codepage 1200
      ccstruct\linlsq.cpp       Save As Unicode codepage 1200

适当修改库目录, 指向 .../tesseract-build-vs2013/lib/Win32 或 .../tesseract-build-vs2013/lib/x64

编译全部. 编译好之后, 用户创建的可执行程序只需要下面2个动态库即可:

libtesseract304.dll

liblept171.dll

4 总结

上面整个过程我花了1天时间摸索整理出来:

开始安装vs2015失败(估计原因是没采用mount ISO的方式), 卸载掉vs2015后, vs2013编译报ws_32.lib找不到.

于是卸载vs2013. 重新安装vs2013.iso失败(rar解压iso安装). 采用mount ISO的方式安装成功. 深刻教训.

tesseract-vs2013-master编译报错,修改部分语法成功.

我的编译偏好是采用:

    多线程: /MT (而不是 多线程DLL: /MD). 用户可以根据自己的好调整.

如果读者重复我整个过程, 是非常折腾人的, 于是我把本文涉及到的全部内容放到ftp上供大家下载使用:

tesseract-build-vs2013_build20161228#a831db20648f97a1bcd89e99097c1af2.zip

在vs2013上的编译tesseract-ocr的更多相关文章

  1. OpenBLAS简介及在Windows7 VS2013上源码的编译过程

    OpenBLAS(Open Basic Linear Algebra Subprograms)是开源的基本线性代数子程序库,是一个优化的高性能多核BLAS库,主要包括矩阵与矩阵.矩阵与向量.向量与向量 ...

  2. Tesseract-OCR4.0版本在VS2015上的编译与运行(转)

    最近刚开始接触识别库引擎方面的知识,由于项目中需要使用光学识别处理模块,在老师与朋友的推荐下,我开始接触tesseract光学识别库,在最开始从GitHub上下载的源代码进行编译的时候,出现了许多意想 ...

  3. Visual Studio 2013编译Tesseract 3.04

    文章目录 去年时候使用了VS2008编译了Tesseract 3.02版本,主要是参考了一份官方文档,但是对于目前的最新版本并没有给出说明. 本文主要参考了Paul Vorbach的How to bu ...

  4. Windows上成功编译CoreCLR源代码

    昨天得知微软在GitHub上发布CoreCLR的源代码之后,立马从GitHub上签出代码,并尝试在Windows Server 2012上进行编译. 参考CoreCLR的开发者指南(Developer ...

  5. Tesseract——OCR图像识别 入门篇

    Tesseract——OCR图像识别 入门篇 最近给了我一个任务,让我研究图像识别,从我们项目的screenshot中识别文字信息,so我开始了学习,与大家分享下. 我看到目前OCR技术有很多,最主要 ...

  6. Win7和VS2013上使用Intel的TBB

    源地址:http://www.th7.cn/system/win/201505/103966.shtml http://wenku.baidu.com/link?url=zH7vwmWltWF5R-9 ...

  7. 开源图片文字识别引擎——Tesseract OCR

    Tessseract为一款开源.免费的OCR引擎,能够支持中文十分难得.虽然其识别效果不是很理想,但是对于要求不高的中小型项目来说,已经足够用了. 文字识别可应用于许多领域,如阅读.翻译.文献资料的检 ...

  8. Tesseract–OCR 库原理探索

    一,简介: Tesseract is probably the most accurate open source OCR engine available. Combined with the Le ...

  9. tesseract ocr文字识别Android实例程序和训练工具全部源代码

    tesseract ocr是一个开源的文字识别引擎,Android系统中也可以使用.可以识别50多种语言,通过自己训练识别库的方式,可以大大提高识别的准确率. 为了节省大家的学习时间,现将自己近期的学 ...

随机推荐

  1. 使用 RHEL(RedHat)6.1 iso 安装包 安装Samba过程

    今天因为工作的需要安装了(RHEL)redhat 6.1 自己为了方便就安装Samba 以记之. 注:Linux系统是刚刚安装好的所以没有samba安装的任何记录. 安装准备: ISO:RHEL_6. ...

  2. POJ-2586 Y2K Accounting Bug贪心,区间盈利

    题目链接: https://vjudge.net/problem/POJ-2586 题目大意: MS公司(我猜是微软)遇到了千年虫的问题,导致数据大量数据丢失.比如财务报表.现在知道这个奇特的公司每个 ...

  3. git的理论基础

    GIT是目前世界上最先进最牛逼的分布式版本控制系统git维护的三棵树分别是工作区域.暂存区域.git仓库工作区域:就是你平时存放项目代码的地方暂存区域:用于临时存放你的改动,事实上它只是一个文件,保存 ...

  4. 深入理解Redux

    前面的话 Redux是Flux思想的另一种实现方式.Flux是和React同时面世的.React用来替代jQuery,Flux用来替换Backbone.js等MVC框架.在MVC的世界里,React相 ...

  5. 【微信小程序】对微信http请求API的封装,方便对错误码进行处理

    /**   * App 微信配置文件app.js   * author: nujey   * versions: 1.0.0   */   App({   /**   * @param {Object ...

  6. SQL将一个数据库中的数据复制到另一个数据库中

    复制表结构 首先,打开并连接Sql Server,在源数据库Source_db(源数据库名称)上右键,然后依次点击"编写表脚本为"→"CREATE到"→&quo ...

  7. 跨域访问 - 跨域请求 同源策略概念对跨域请求的影响 及几种解决跨域请求的方法如 jsonp

    为什么会设置同源策略 > 适用于浏览器的一种资源访问策略 > 同源策略(Same origin policy)是一种约定,它是浏览器最核 心也最 基本的安全功能,如果缺少了同源策略,则浏览 ...

  8. ios开发-程序压后台后,悄悄的抓取数据~~

    我们使用某个app的时候,当我们将程序压到后台之后,我们希望它还能从服务器抓取一些数据,类似微博,微信,qq这些程序压后台 之后,我们依然能看到icon上显示未读数量.但是ios系统是伪多任务操作系统 ...

  9. 使用数据库乐观锁解决高并发秒杀问题,以及如何模拟高并发的场景,CyclicBarrier和CountDownLatch类的用法

    数据库:mysql 数据库的乐观锁:一般通过数据表加version来实现,相对于悲观锁的话,更能省数据库性能,废话不多说,直接看代码 第一步: 建立数据库表: CREATE TABLE `skill_ ...

  10. codeforces Gym - 100633J Ceizenpok’s formula

    拓展Lucas #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring ...