系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、简介
- 二、使用步骤
- 1.Tesseract库下载
- 1.1 Vcpkg下载
- 1.2 添加环境变量
- 1.3 vcpkg运行
- 1.4 下载Tesseract库
- 2.引用到项目
- 2.1 把Tesseract关联的dll/lib/h都放入指定的目录
- 2.2 添加头文件
- 2.3 参照lib
- 总结
前言
网上很多关于Tesseract OCR下载和编译的博客都已经过时了,按照其方法并不能成功。这里以最新的官方文档为基础,记录Tesseract OCR的下载和编译经历。供大家参考。
一、简介
Tesseract OCR是由惠普公司的布里斯托尔实验室在1984-1994年开发的一款开源OCR引擎,最初作为其平板扫描仪的文字识别引擎。在1995年的UNLV OCR字符识别准确性测试中,Tesseract拔得头筹,受到了广泛关注。然而,在1994年以后,Tesseract的开发就停止了。
直到2005年,HP将Tesseract贡献给开源社区,美国内华达州信息技术研究所获得该源码,同时,Google开始对Tesseract进行功能扩展及优化。目前,Tesseract作为开源项目发布在Google Project上,获得了新生。Tesseract的最新版本是3.02,支持60种以上的语言,它提供一个引擎和一个命令行工具,可以从官方网站上下载。
Tesseract OCR是一款开源的OCR引擎,该引擎功能强大,概括地可以分为两部分:图片布局分析和字符分割和识别。图片布局分析是字符识别的准备工作,通过一种混合的基于制表位检测的页面布局分析方法,将图像的表格、文本、图片等内容进行区分。字符分割和识别是整个Tesseract的设计目标,工作内容最为复杂。
首先,字符切割采用两步走战略:利用字符间的间隔进行粗略的切分,得到大部分的字符,同时也有粘连字符或者错误切分的字符。这里会进行第一次字符识别,通过字符区域类型判定,根据判定结果对比字符库识别字符。根据识别出来的字符,进行粘连字符的分割,同时把错误分割的字符合并,完成字符的精细切分。
Tesseract OCR具有高精度的识别能力,支持多种语言,并且在免费OCR引擎中识别精度也仍然是出类拔萃的。因为其免费与较好的效果,许多的个人开发者以及一些较小的团队在使用着 Tesseract ,诸如验证码识别、车牌号识别等应用中,不难见到 Tesseract 的身影。
二、使用步骤
官方Windows的编译指南文档:https://tesseract-ocr.github.io/tessdoc/Compiling.html#windows
官方各种平台的编译指南文档:https://tesseract-ocr.github.io/tessdoc/Compiling.html
1.Tesseract库下载
可以通过SW 或者vcpkg 下载并编译Tesseract以及相关的依赖项。
SW 下 载途中失败,可能是公司网络的原因,网上也有人说是国内就不能下载
vcpkg 成功,下面以这个展开
1.1 Vcpkg下载
https://github.com/microsoft/vcpkg
1.2 添加环境变量
将下载文件夹的目录添加到系统环境变量中,后续运行vcpkg的控制台命令方便。我的路径是:“D:\TesseractOCR\vcpkg”
1.3 vcpkg运行
双击vcpkg文件夹中的bootstrap-vcpkg.bat,等待运行完毕,自动关闭
1.4 下载Tesseract库
控制台输入以下指令下载需要的版本,注意这里耗时较长。存放在"E:\TesseractOCR\vcpkg\installed"
动态库
vcpkg install tesseract:x86-windows
vcpkg install tesseract:x64-windows
静态库
vcpkg install tesseract:x86-windows-static
vcpkg install tesseract:x64-windows-static
2.引用到项目
把下载的动态库或静态库引用到C++工程
静态库 失败(编译不过,原因不明)
动态库 成功
注意事项:Debug模式参照Debug的库,Release模式参照Release的库,否则运行的时候可能会异常崩溃
2.1 把Tesseract关联的dll/lib/h都放入指定的目录
dll:Tesseract的bin目录中的所有dll都要放到运行目录(tessdata文件夹下的语言包也需要,默认是英语)
lib/h:根据2.2/2.3把需要的文件放到指定目录即可
2.2 添加头文件
官方文档的代码中头文件只有前面俩个,实测下来第三个也是需要的
#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
#include <leptonica/pix_internal.h>
2.3 参照lib
tesseract53d.lib
leptonica-1.83.1d.lib
总结
本文主要讲述了Tesseract库的下载和引用。如果想自己编译Tesseract库的需要去下载源码。虽然也尝试过下载源码。但是通过CMake生成vs解决方案的时候,一直没有通过,有知道原因的,欢迎评论交流。