在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. Django通过pycharm创建后,如何登录admin后台?

    问题背景: 使用pycharm创建完成django项目(项目名称为:mydjangopro,app名称为my_blog) , 本想登录后台直接输入地址:http://127.0.0.1:8000/ad ...

  2. Downloader Middleware

    downloader middleware作用:改写请求,如加入代理,加入头部等:处理异常等. # downloadMiddleware举例, 加代理 # 这里的类如果已经重新设置名称,记得在sett ...

  3. JQuery开发报错集锦

    报错一:JQuery $.each遍历JSON字符串报Uncaught TypeError:Cannot use 'in' operator to search for "70". ...

  4. .NET Core2.0+MVC 用Redis/Memory+cookie实现的sso单点登录

    之前发布过使用session+cookie实现的单点登录,博主个人用的很不舒服,为什么呢,博主自己测试的时候,通过修改host的方法,在本机发布了三个站点,但是,经过测试,发现,三个站点使用的sess ...

  5. [LeetCode] Flood Fill 洪水填充

    An image is represented by a 2-D array of integers, each integer representing the pixel value of the ...

  6. 机器学习基石:05 Training versus Testing

    train:A根据给定训练集D在H中选出g,使得Ein(g)约等于0: test:g在整个输入空间X上的表现要约等于在训练集D上的表现,使得Eout(g)约等于Ein(g). 如果|H|小,更易保证t ...

  7. [HNOI2010]弹飞绵羊

    Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置 ...

  8. [HNOI2008]遥远的行星

    题目描述 直线上N颗行星,X=i处有行星i,行星J受到行星I的作用力,当且仅当i<=AJ.此时J受到作用力的大小为 Fi->j=Mi*Mj/(j-i) 其中A为很小的常量,故直观上说每颗行 ...

  9. 因数(factor)

    一个最基本的算数法则就是大于1的整数都能用1个或多个素数相乘的形式表示出来.当然,有多种质因子排列方案 如: 10=2×5=5×2    20=5×2×2=2×5×2=2×2×5 用f(k)表示k的质 ...

  10. BestCoder 1st Anniversary ——HDU5312(数学推导)

    Today, Soda has learned a sequence whose n-th (n≥1) item is 3n(n−1)+1. Now he wants to know if an in ...