[笔记]Win10下编译Tesseract-OCR 4.0
Tesseract-OCR 4.0使用了LSTM网络,准确性相比3.x版本提升不少。
官网提供的安装包会提供一堆DLL,而我需要的是一个静态链接的exe文件,所以只能重新编译。
编译环境
Windows 10 专业版
Visual Studio 2017
需要选择开发桌面程序的相关组件,并选择英文。
- cmake
我的cmake版本是3.13.2,貌似没它也行。
- cppan
从cppan官网下载CPPAN客户端,编译动态库时使用。
- vckpg
下载vcpkg源码,使用管理员权限打开PowerShell,编译之。
> git clone https://github.com/Microsoft/vcpkg.git
> cd vcpkg
PS> .\bootstrap-vcpkg.bat
PS> .\vcpkg integrate install
编译Tesseract-OCR 4.0
PS> .\vcpkg install tesseract:x86-windows-static
如果需要64位的exe,将上面的x86
换成x64
即可。
如果发现某个组件下载失败,可以自行下载后,将文件放在vcpkg\downloads\
目录下,然后重新运行上面的命令。
最后成功时,会得到exe文件在vcpkg\packages\tesseract_x86-windows-static\tools\tesseract\tesseract.exe
验证exe文件
PS> .\tesseract.exe --version
tesseract 4.0.0
leptonica-1.76.0 (Jan 5 2019, 23:01:20) [MSC v.1916 LIB Release x86]
libgif 5.1.4 : libjpeg 6b (libjpeg-turbo 1.5.3) : libpng 1.6.35 : libtiff 4.0.10 : zlib 1.2.11
Found AVX
Found SSE
使用Tesseract-OCR 4.0识别图片文件
将tesseract.exe拷贝到某个目录,然后在该目录之下建立tessdata
目录,下载所需的语言库文件放在里面。
要识别简体中文,需要下载的是chi_sim_best.traineddata
和chi_sim_vert.traineddata
文件。
举例要识别a.jpg
文件,命令行如下:
> tesseract.exe a.jpg output -l chi_sim_best --oem 1
识别结果在output.txt
文件内。
OpenMP
安装Visual C++ Redistributable 2015
,就有了vcomp140.dll
,以支持OpenMP。
编译动态库
如果想得到动态库,使用下面的命令:
cppan --build pvt.cppan.demo.google.tesseract.tesseract-master
中间出现错误,将equationdetect.cpp
使用带BOM的UTF-8编码另存一下就解决了,最终生成的动态库文件如下:
pvt.cppan.demo.danbloomberg.leptonica-1.76.0.dll
pvt.cppan.demo.google.tesseract.libtesseract-master.dll
pvt.cppan.demo.google.tesseract.tesseract-master.exe
pvt.cppan.demo.jpeg-9.2.0.dll
pvt.cppan.demo.madler.zlib-1.2.11.dll
pvt.cppan.demo.openjpeg.openjp2-2.3.0.dll
pvt.cppan.demo.png-1.6.35.dll
pvt.cppan.demo.tiff-4.0.9.dll
pvt.cppan.demo.webp-0.6.1.dll
pvt.cppan.demo.xz_utils.lzma-5.2.4.dll
Tesseract训练工具
从cppan官网下载CPPAN客户端,然后执行
cppan --build pvt.cppan.demo.google.tesseract-master
最后也没成功,部分报错如下:
Performing Test HAVE_DECL_DECL - Failed
...
error C2065: 'decl': undeclared identifier
不清楚原因是什么。
[更新于 2019-11-05]
上述流程可以应用于生成最新版的Tesseract,目前编译成功了 4.1.0
- 可以使用VS2019 Commnunity版
- 安装时需要选择使用C++的桌面开发,默认配置即可
- 注意要包含
Windows 10 SDK
- 语言包要勾选English
[笔记]Win10下编译Tesseract-OCR 4.0的更多相关文章
- win10下vs2015配置Opencv3.1.0过程详解
下载安装Opencv3.1.0 下载Opencv3.1.0,进入官网,点击opencv for windows即可下载. 点击运行下载好的文件.实际上,opencv的安装程序就是解压缩文件,个人因为 ...
- win10下vs2015配置Opencv3.1.0过程详解(转)
下载安装Opencv3.1.0 下载Opencv3.1.0,进入官网,点击opencv for windows即可下载. 点击运行下载好的文件.实际上,opencv的安装程序就是解压缩文件,个人因为 ...
- 在CUDA8.0下编译安装OpenCV3.1.0来实现GPU加速(Compiling OpenCV3.1.0 with CUDA8.0 support)
在CUDA8.0下编译安装OpenCV3.1.0 一.本人电脑配置:ubuntu 14.04, NVIDIA GTX1060. 二.编译OpenCV3.1.0前,读者需要成功安装CUDA8.0(网上有 ...
- Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python)
Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python) 前提是已经安装了python2,python3 1)安装各种依赖库 sudo apt-get update ...
- Win10下编译OpenJDK8
导航目录 Win10下编译OpenJDK8 相关参考文章 编译环境 编译前准备 1.安装 Visual Studio 2010 Professional 2. 准备OpenJDK8 3. 编译JDK环 ...
- Win10下mysql5.5和mysql8.0.19共存
Win10下mysql5.5和mysql8.0.19共存 需求:由于之前做的项目用的是mysql5.5,而新接的项目指定用mysql8,需要myql5..5和8同时存在运行. 前提:电脑已经安装mys ...
- CENTOS 下 编译安装 tesseract-ocr 3.0.4 识别文字
网上搜集了不少资料,发现目前Tesseract转移到了Github上,因此下载方式和以前略有差别,下文是参考了诸位达人(再此表示感谢)和自己的实际操作过程形成的.(1)首先安装依赖的leptonica ...
- 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse小工具
目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...
- win10下ASP.NET Core 2.0部署环境搭建(转)
此文用于记录在win10环境下,新建的Asp.net Core 2.0 Web应用项目如何运行在IIS上 一.运行环境 操作系统: Window10 家庭中文版 版本 10.0.15063 版本 15 ...
随机推荐
- 返回flag
//修改前namespace CleanCSharp.Errors.Dirty { public class SomeClass { public int DoSomeProcess(int? id) ...
- 转载 -- iOS中SDK的简单封装与使用
一.功能总述 在博客开始的第一部分,我们先来看一下我们最终要实现的效果.下图中所表述的就是我们今天博客中要做的事情,下方的App One和App Two都植入了我们将要封装的LoginSDK, 两个A ...
- 剑指 offer set 23 n 个骰子的点数
题目 把 n 个骰子扔到地上, 所有骰子朝上一面的点数之和为 s. 输入 n, 打印出 s 所有可能的值出现的概率. 思路 1. 基于递归的求解方法. 深度为 n 的 dfs, 相当于求全排列, 时间 ...
- webstorm配置内存参数,解决卡顿
找到WebStorm.exe.vmoptions这个文件,路径如下webstorm安装主目录>bin>WebStorm.exe.vmoptions更改为第二行:-Xms526m第三行:-X ...
- Java四种会话跟踪技术
1.cookie:2.session:3.隐藏表单域:4.URL重写
- android-修改TextView中部分文字的颜色
:
- 用httpClient的PostMethot频繁发送数据,抛出Too many open files
在工作过程中,用httpclient去压测一个web api,发现压一小段时间就出现了Too many open files.实际上,HttpClient建立Socket时 ,post.release ...
- Cocos2d-x学习笔记之常用的宏
NS_CC_BEGIN:Cocos2D-x命名空间开始,属于Cocos2D-x的类的定义以该宏开头,用以代替C++中的“namespace cocos2d{”. NS_CC_END:Cocos2D-x ...
- vue通信
组件实例的作用域是孤立的. 一.父子通信 父组件通过props向下传递数据给子组件,子组件通过events给父组件发送消息. 要让子组件使用父组件的数据,我们需要通过子组件的props选项.prop是 ...
- Oracle Schema Objects——Tables——TableStorage
Oracle Schema Objects Table Storage Oracle数据库如何保存表数据? Oracle Database uses a data segment in a table ...