[Tesseract]Tesseract 在 Visual Studio 2012 中的配置及调用

本文详细介绍如何在Visual Studio 2012环境中配置Tesseract OCR引擎,包括下载源码、安装附加库文件及配置步骤,并提供了一个简单的OCR识别示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Tesseract简介

Tesseract是一个开源的OCR(Optical Character Recognition,光学字符识别)引擎,可以识别多种格式的图像文件并将其转换成文本,目前已支持60多种语言(包括中文)。 Tesseract最初由HP公司开发,后来由Google维护,github地址为:https://github.com/tesseract-ocr/


二、Tesseract源码下载

1、下载tesseract-ocr-setup-3.02.02.exe

下载地址:https://sourceforge.net/projects/tesseract-ocr-alt/files/ , 点击 “tesseract-ocr-setup-3.02.02.exe” 进行下载。

下载后,双击tesseract-ocr-setup-3.02.02.exe,进行安装。

按照操作提示,点击next。

注意,在选择组件页面,勾选 Tesseract development files。 如图:

安装完成后,选择的安装目录下(D:\Program Files (x86)\Tesseract-OCR),文件夹如下:



但是,下载下来的源码是不够的。还需要下载附加lib。


2、下载tesseract-3.02.02-win32-lib-include-dirs.zip

下载地址:https://sourceforge.net/projects/tesseract-ocr-alt/files/ ,选择“tesseract-3.02.02-win32-lib-include-dirs.zip” 进行下载。

下载得到压缩包后,解压缩,目录如下:



其中,include目录中包含如下:



lib目录中包含如下:



将include 文件夹中的内容复制到 D:\Program Files (x86)\Tesseract-OCR\include 文件夹中,将lib 文件夹中的内容复制到 D:\Program Files (x86)\Tesseract-OCR\lib 文件夹中。


3、下载 tesseract_versionnumbers.props 和 leptonica_versionnumbers.props

下载地址为:https://github.com/jakesays/tesseract-vs2012/tree/master/include,将项目中包含的 tesseract_versionnumbers.props 和 leptonica_versionnumbers.props 复制到D:\Program Files (x86)\Tesseract-OCR\include 文件夹中。


至此,我们需要的资源就准备齐全了。

备注:我之前也是走了一些弯路,这是总结出来的完整资源的获得方式。以上所需要的资源的必要性,在后面Tesseract 与 VS2012 相结合的时候会提到。

三、Tesseract 在 Visual Studio 2012 中的配置

1、新建win32控制台项目



注意在附加选项中,勾选“空项目”。



2、引入头文件

在“解决方案资源管理器” 窗口,右键 “MyFirstTesseractProject”工程  -> “属性(R)” ->“C/C++”->“常规”->“附加包含目录”中,添加如下内容:

D:\Program Files (x86)\Tesseract-OCR\include

D:\Program Files (x86)\Tesseract-OCR\include\leptonica

D:\Program Files (x86)\Tesseract-OCR\include\tesseract

如图所示:





3、引入库文件

1)添加属性表

首先将“D:\Program Files (x86)\Tesseract-OCR\include”目录 拷贝到 本地工程“MyFirstTesseractProject\MyFirstTesseractProject”目录下,如图所示:



然后进行以下设置: 
在“解决方案管理器”所在区域,切换到“属性管理器”窗口; 
右键“MyFirstTesseractProject”工程下面的“Debug|Win32”文件夹 –>“添加现有属性表(E)…”–>在“MyFirstTesseractProject\MyFirstTesseractProject\include”目录下找到“tesseract_versionnumbers.props”–>“打开”; 
如图所示:


添加后如图所示:


2)配置库文件

在“解决方案管理器”窗口–>右键“MyFirstTesseractProject”工程–>“属性(R)”–>“配置属性”–>“链接器”–>“常规”–>“附加库目录”中添加如下内容:

D:\Program Files (x86)\Tesseract-OCR\lib

如图所示:



4、添加预定义

在“解决方案管理器”窗口–>右键“MyFirstTesseractProject”工程–>“属性(R)”–>“配置属性”–>“C/C++”–>“预处理器”–>“预处理器定义”–>中添加”如下列表中的“预定义”内容:

_WINDOWS 
NDEBUG 
USE_STD_NAMESPACE

如下图: 




5、添加附加库

在“解决方案管理器”窗口–>右键“MyFirstTesseractProject”工程–>“属性(R)”–>“配置属性”–>“链接器”–>“输入”–>“附加依赖项”–>中“添加”如下列表中的“附加库”内容:

libtesseract302.lib
libtesseract302d.lib
liblept168.lib
liblept168d.lib

如图所示:





6、其他添加

在“MyFirstTesseractProject” 目录下新建 “Debug”文件夹,将“libtesseract302.dll” 和 “libtesseract302d.dll” 拷贝到 “Debug” 文件夹下面。如图所示:




三、运行Tesseract实例

#include <baseapi.h>
#include <allheaders.h>
#include <iostream>

using namespace std;

int main(void)
{

	tesseract::TessBaseAPI api;
	api.Init("", "eng", tesseract::OEM_DEFAULT);
	api.SetPageSegMode(static_cast<tesseract::PageSegMode>(7));
	api.SetOutputName("out");

	cout<<"File name:";
	char image[256];
	cin>>image;
	PIX   *pixs = pixRead(image);

	STRING text_out;
	api.ProcessPages(image, NULL, 0, &text_out);

	cout<<text_out.string();

	system("pause");
}


运行成功,运行结果如下:



给定测试图片,如图:

输入图片路径,得到结果:



正确率有待提高。


四、总结

至此,成功在VS2012中配置了Tesseract。网上的资料比较少,下载下来的库并不完整,经过实践,总结出了在我这里可行的一套办法。我的系统是win7,64位。

同时,在实验的过程中,参考了以下博文。我觉得最大的收获是,在遇到博文上说的办法不可行的时候,根据实际情况作出了调整,并且成功跑通。

感谢:

【Tesseract】Tesseract API在VS 2013中的配置以及调用

Tutorial: How to Install Tesseract OCR 3.02.02 for Visual Studios 2008 on Windows Vista











### 配置 Tesseract OCR 引擎于 Visual Studio 的方法 要在 Visual Studio 中成功配置 Tesseract OCR 引擎,需完成以下几个方面的设置: #### 1. 安装必要的依赖库 Tesseract OCR 工程通常需要 Leptonica 库的支持以实现图像预处理功能。因此,在开始之前应确保已安装这两个库[^2]。可以通过源码编译的方式获取最新版本的 Tesseract 和 Leptonica,或者借助包管理器(如 Conan 或 vcpkg)自动下载并配置所需的依赖。 对于使用 Conan 来管理项目的场景,可以在 `conanfile.txt` 文件中指定所需组件及其版本号: ```plaintext [requires] tesseract/4.1.1 leptonica/1.80.0 [generators] CMakeDeps CMakeToolchain ``` 运行命令 `conan install . --build=missing` 即可拉取上述两项资源到本地环境,并生成适合 CMake 使用的配置脚本[^5]。 #### 2. 创建新的控制台应用程序工程 启动 Visual Studio 后新建一个标准的 Win32 控制台应用解决方案作为承载平台。此操作可通过菜单栏选项 “File -> New -> Project...” 实现。 #### 3. 设置附加包含目录与链接器输入 为了让编译器能够找到头文件以及静态/动态链接库的位置,必须调整项目属性页里的相关内容。具体步骤如下所示: - **C/C++ -> General -> Additional Include Directories**: 添加路径指向 Tesseract 及 Leptonica 头文件所在的文件夹; - **Linker -> Input -> Additional Dependencies**: 插入对应的目标机器架构下预先构建好的 `.lib` 文件名称列表; - **Linker -> General -> Additional Library Directories**: 设定实际存储这些库文件的实际物理位置[^4]。 例如假设当前工作区结构类似于下面这样,则相应的字段填写方式可能分别为: ```plaintext Additional Include Directories: $(SolutionDir)\deps\include;$(IncludePath) Additional Library Directories: $(SolutionDir)\deps\lib\x64;$(LibraryPath) Additional Dependencies: lept.lib;tesseract.lib; ``` #### 4. 编写简单的测试代码片段验证集成效果 最后一步便是尝试编写一小段示范性的调用逻辑来确认整个流程无误。这里给出一段基础示例供参考: ```cpp #include <iostream> #include <tesseract/baseapi.h> int main() { tesseract::TessBaseAPI api; // 初始化 API 对象实例关联的语言模型数据集 if (!api.Init(nullptr, "eng")) { // eng 表示英文语种 std::cerr << "Could not initialize tesseract." << std::endl; return -1; } const char* text = nullptr; try { api.SetImage((uchar*) "sample_image.png", /*width*/ 800, /*height*/ 600, /*bytes_per_pixel*/ 3, /*bytes_per_line*/ 2400); text = api.GetUTF8Text(); std::cout << "Recognized Text:\n" << text << "\n"; } catch (...) { std::cerr << "Error during recognition process!" << std::endl; } delete[] text; api.End(); return 0; } ``` 以上程序加载了一张名为 sample_image.png 的图片并通过初始化后的 TessBaseAPI 类型变量执行文字提取任务。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值