在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. 从感知机到 SVM,再到深度学习(三)

        这篇博文详细分析了前馈神经网络的内容,它对应的函数,优化过程等等.     在上一篇博文中已经完整讲述了 SVM 的思想和原理.讲到了想用一个高度非线性的曲线作为拟合曲线.比如这个曲线可以是: ...

  2. linux搭建node环境超详细教程

    linux 环境搭建详细步骤 1.访问官方网址:https://nodejs.org/en/download/ 2.选择和你服务器版本相关的压缩包,复制下载链接 3.服务器登录ssh,(这里我用的服务 ...

  3. reportng优化

    本来呢,我是看到报告中没有输出@Test的description 的属性,想优化一下,没想到在找reportng的源码的时候,发现一个大神也优化了reportNG,他优化了下面几个内容: 1).测试结 ...

  4. hash详解

    首先介绍一下hash? 事实上是一种叫做蛤丝的病毒 hash的做法: 首先设一个进制数base,并设一个模数mod 而哈希其实就是把一个数转化为一个值,这个值是base进制的,储存在哈希表中,注意一下 ...

  5. Java进阶篇(二)——抽象类、内部类

    之前在类和对象中我们说到了类的普通特性,本篇将介绍类的一些高级特性. 一.抽象类 抽象类:抽象类是只声明方法的存在而不去具体实现它的类.抽象类不能被实例化,也就是不能创建其对象.使用abstract关 ...

  6. [BZOJ 2654]tree(陈立杰)

    Description 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有need条白色边的生成树. 题目保证有解. Input 第一行V,E,need分别表示点数,边数和需要的白色 ...

  7. bzoj 4830: [Hnoi2017]抛硬币

    Description 小A和小B是一对好朋友,他们经常一起愉快的玩耍.最近小B沉迷于**师手游,天天刷本,根本无心搞学习.但是 已经入坑了几个月,却一次都没有抽到SSR,让他非常怀疑人生.勤勉的小A ...

  8. 【HDU 2669】Romantic

    Problem Description The Sky is Sprite.The Birds is Fly in the Sky.The Wind is Wonderful.Blew Throw t ...

  9. [UOJ UNR #2]积劳成疾

    来自FallDream的博客,未经允许,请勿转载,谢谢. 传送门 区间最大值的题emmmm 想到构建笛卡尔树,这样自然就想到了一种dp f[i][j]表示大小为i的笛卡尔树,根的权值是j的答案. 转移 ...

  10. 【bzoj3173-最长上升子序列-一题两解】

    这道题不就是简单的DP吗,BZOJ在水我!不,你是错的. ·本题特点:       不断向不同位置插入数字(按数字1,2,3,4,5,6……),需要求出每一次插入后的最长上升子序列. ·分析      ...