文章目录

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

本文主要参考了Paul Vorbach的How to build Tesseract 3.03 with Visual Studio 2013,在翻译的同时,加上自己的一些经验总结。

编译新版本最大问题在于新版本的Tesseract依赖新版的Leptonica库,后者是一个开源的C语言图像处理包。新版本的Leptonica需要新版的zlib,libpng,libtiff,libjepg和giflib这些库。在Leptonica的官网上只给出了Leptonica 1.68版本的VS2008编译工程(果然还是要掌握点Linux下的开发技巧:D)。那么你需要做的就是需要把新版的Leptonica编译成需要的lib文件及dll提供Tesseract调用,这无疑是一份枯燥繁琐的事。

很幸运的是在GitHub上已经有一个Visual Studio的工程文件包含了所有Tesseract 3.03依赖的文件。charlesw/tesseract-vs2012。这个工程Paul编译后发现了一些错误,然后又fork了一份:tesseract-vs2013

下面是使用Visual Studio 2013编译Tesseract 3.04的所有步骤。

前序工作

1.安装Git。(实际上你可以根据自己习惯直接从GitHub网页上下载源码)。
2.安装SVN,比如SlickSVN
3.安装Visual Studio 2013 for Windows Desktop

编译Leptonica 1.71

1.创建用来编译Tesseract的目录。这里我们假设是C:Tesseract-Build 大专栏  Visual Studio 2013编译Tesseract 3.04.

2.打开cmd命令,改变路径:
cd Tesseract-Build

3.从GitHub上拷贝依赖文件到当前目录:
git clone git://github.com/pvorb/tesseract-vs2013.git

4.打开tesseract-vs2013目录下的工程文件进行编译,注意需要在DLL_Ddebug, DLL_Release, LIB_Debug, LIB_Release每个Solution Configuration下都Build一次。这样编译后得到的lib和dll就是Tesseract所依赖的文件了。

编译Tesseract

1.确保当前路径仍然是C:Tesseract-Build

2.从SVN上获取最新版Tesseract源码:
svn checkout http://tesseract-ocr.googlecode.com/svn/trunk/ tesseract-ocr

3.把路径改成新检出的源码下:
cd tesseract-ocr

4.利用tesseract-vs2013目录下的patch文件:
svn patch ..tesseract-vs2013vs2013+64bit_support.patch

到这里如果都没有问题,那真的要恭喜你!事实上你极有可能在步骤2利用svn导入源码时候就出错了,这时候你首先要感谢下政府,然后你可以从GitHub上直接下载源码包(Tesseract工程已经转移到GitHub上了),得到源码把它拷贝在tesseract-ocr目录下。由于你不是从SVN上导入,所以步骤4就会报错。这时候你就需要手动配置依赖文件,具体过程是这样的:

1)在Tesseract-Build目录下创建includelib文件夹,在include文件夹拷贝C:Tesseract-Buildtesseract-vs2013目录下的一些头文件,包括所有Leptonica的头文件及部分其他库的头文件:

2)将上面步骤编译得到的lib文件及dll文件拷贝到lib目录下:

3)用VS2013打开C:Tesseract-Buildtesseractvs2010目录下的工程,就能够成功编译。如果出现error C2146的错误,需要选择vs2013的菜单“File – Advanced Save Options”中设置Encoding为Chinese Simplified,保存后重新编译。

End

这个月啥都没写,姑且拿这个凑个数吧。

Visual Studio 2013编译Tesseract 3.04的更多相关文章

  1. 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法

    转自:http://blog.csdn.net/xiaochunzao/article/details/16987703 Visual Studio 2013 编译旧的 multi-byte char ...

  2. Visual Studio 2013 编译 64 位 Python 的 C 扩展 (使用 PyObject 包装)

    对于 32 位 Python 的 C 扩展,以前用过 mingW32 编译, 但是 mingW32 不支持 64 位 Python 的 C 扩展编译,详情可见 stackoverflow,这位前辈的大 ...

  3. Windows下Visual Studio 2013编译Lua 5.2.3

    1.创建一个Visual C++的Empty Project,如果需要支持Windows XP将Platform Toolset设置为Visual Studio 2013 - Windows XP ( ...

  4. Visual Studio 2013 编译CEF步骤

    If you'd like to build the Chromium Embedded Framework (a wrapper for Chromium, for creating browser ...

  5. Visual Studio 2013编译Mozilla NPAPI 示例注意事项

    1.Platform Toolset设置Visual Studio 2013 - Windows XP (v120_xp). 2.Character Set设置Use Multi-Byte Chara ...

  6. Windows下Visual studio 2013 编译 Audacity

    编译的Audacity版本为2.1.2,由于实在windows下编译,其源代码可以从Github上取得 git clone https://github.com/audacity/audacity. ...

  7. 解决visual studio 2013编译过程中存在的无法打开kernel.lib问题

    1. 出现此类问题的原因 由于原visual studio文件中的安装中出现问题,所以原有的SDK(soft development kits)文件出现缺失: 2. 解决方法1 重新下载SDK工具,安 ...

  8. isual Studio 2013编译ImageMagick---转

    “该文引用自 CruiseYoung的:Visual Studio 2013编译ImageMagick http://blog.csdn.net/fksec/article/details/36008 ...

  9. Visual Studio 2013环境下操作vc6/vc7/vc8等低版本平台项目【编译|生成|调试】

    现代化的开发环境,微软一直在推出更新换代,我们所处的技术环境在日新月异的变化:不过在中国多数人们一边疲惫的追赶着时代的步伐,一边坚守着自己所获悉所掌握的那些紧吧吧的知本.对技术工具的掌握并非他们所想要 ...

随机推荐

  1. 15 docker 网络 docker 容器之间的关系 docker link

    1.案例:使用 link 关联后台与数据库 创建 test1 容器 docker run -d --name test1 busybox /bin/sh -c "while true; do ...

  2. Django_前介

    Django 1.软件框架 ​ 一个公司是由公司中的各部部门来组成的,每一个部门拥有特定的职能,部门与部门之间通过相互的配合来完成让公司运转起来. ​ 一个软件框架是由其中各个软件模块组成的,每一个模 ...

  3. python代码技术优化

    numba 编译优化 from numba import jit @jit def eval_mcc(y_true, y_prob, threshold=False): idx = np.argsor ...

  4. 14 微服务电商【黑马乐优商城】:day02-springcloud(理论篇二:知道什么是SpringCloud)

    本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) day02-springcloud(理论篇一: ...

  5. KMP匹配(模板)

    先粘上我入门KMP时看的大佬的博客:orz orz 从头到尾彻底理解KMP 我觉得这篇已经讲的很详细了,希望大家能坚持看下去. 步骤 ①寻找前缀后缀最长公共元素长度对于P = p0 p1 ...pj- ...

  6. day07-生成器

    一. 含有yield关键字的函数就是生成器函数. yield不能和return公用,且要写在函数内部. 调用生成器函数之后,函数不执行,返回一个生成器. 生成器的本质是迭代器.生成器generator ...

  7. spring cloud关于feign client的调用对象列表参数、设置header参数、多环境动态参数试配

    spring cloud关于feign client的调用 1.有些场景接口参数需要传对象列表参数 2.有些场景接口设置设置权限等约定header参数 3.有些场景虽然用的是feign调用,但并不会走 ...

  8. Relative-Frequency|frequency|pie chart |bar chart

    2.2Organizing Qualitative Data The number of times a particular distinct value occurs is called its ...

  9. SpringBoot:Shiro 整合 Redis

    前言 前段时间做了一个图床的小项目,安全框架使用的是Shiro.为了使用户7x24小时访问,决定把项目由单机升级为集群部署架构.但是安全框架shiro只有单机存储的SessionDao,尽管Shrio ...

  10. deeplearning.ai 人工智能行业大师访谈

    Geoffrey Hinton 1. 怀揣着对大脑如何存储记忆的好奇,Hinton本科最开始学习生物学和物理学,然后放弃,转而学习哲学:然后觉得哲学也不靠谱,转而学习心理学:然后觉得心理学在解释大脑运 ...