Tesseract API 在 Visual Studio 2013中的配置以及调用

转载:
https://blog.****.net/wz22881916/article/details/51548475

一、配置

tesseract库下载

想要在VS中使用Tesseract库,必须使用经过相对应的VS版本编译过的dll以及lib。比如在VS 2013中,就必须使用在VS 2013中编译过的Tesseract库。
这里我给出经过VS 2013编译的Tesseract库, 下载地址: http://pan.baidu.com/s/1o7JqXmU

Tesseract API 在 Visual Studio 2013中的配置以及调用
有了Tesseract库之后,我们便在VS 2013中配置环境以及包含库了。

引入头文件

在“解决方案管理器”窗口–>右键“Tesseract Demo”工程–>“属性®”–>“配置属性”–>“C/C++”–>“常规”–>“附加包含目录”: 在“Tesseract Demo”工程中所有“活动解决方案平台”的所有“活动解决方案配置”中都添加如下内容:

D:\Tesseract 3.0\include
D:\Tesseract 3.0\include\leptonica
D:\Tesseract 3.0\include\tesseract

Tesseract API 在 Visual Studio 2013中的配置以及调用

添加属性表

首先将“D:\Tesseract 3.0\include”目录拷贝到本地工程“Tesseract Demo”所在目录。
然后进行以下设置:
在“解决方案管理器”所在区域,切换到“属性管理器”窗口;
右键“Tesseract Demo”工程–>“添加现有属性表(E)…”–>在“Tesseract Demo\include”目录下找到“tesseract_versionnumbers.props”–>“打开”;

Tesseract API 在 Visual Studio 2013中的配置以及调用

配置库文件

在“解决方案管理器”窗口–>右键“Tesseract Demo”工程–>“属性®”–>“配置属性”–>“连接器”–>“常规”–>“附加库目录”: 在“Tesseract Demo”工程中所有“活动解决方案平台”的所有“活动解决方案配置”中都添加如下内容:

D:\Tesseract 3.0\Lib

Tesseract API 在 Visual Studio 2013中的配置以及调用

添加预定义

在“解决方案管理器”窗口–>右键“Tesseract Demo”工程–>“属性®”–>“配置属性”–>“C/C++”–>“预处理器”–>“预处理器定义”–>按“活动解决方案配置”类型“添加”如下列表中的“预定义”内容:

WIN32
_WINDOWS
NDEBUG
USE_STD_NAMESPACE
_DEBUG
_CONSOLE
_LIB
_CRT_SECURE_NO_DEPRECATE

Tesseract API 在 Visual Studio 2013中的配置以及调用

添加附加库

在“解决方案管理器”窗口–>右键“Tesseract Demo”工程–>“属性®”–>“配置属性”–>“连接器”–>“输入”–>“附加依赖项”–>按“活动解决方案配置”类型“添加”如下列表中的“附加库”内容:

ws2_32.lib 
user32.lib
jpeg.lib
liblept168.lib
libpng.lib
libtesseract302.lib
libtiff.lib
zlibstat.lib

Tesseract API 在 Visual Studio 2013中的配置以及调用

注意:
如果出现dll文件报错的情况,可以将:“D:\Tesseract 3.0\dll”中的

libtesseract302.dll
liblept168.dll

拷贝到“C:\Users\admin\Documents\Visual Studio 2013\Projects\Tesseract Demo\Tesseract Demo”目录下。

二、测试

代码及路径

将待识别图片拷贝到“C:\Users\admin\Documents\Visual Studio 2013\Projects\Tesseract Demo\Tesseract Demo”目录下。

main函数如下所示:

#include "baseapi.h"
#include "allheaders.h"

int main()
{
	char *outText;

	tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
	// Initialize tesseract-ocr with English, without specifying tessdata path
	if (api->Init(NULL, "eng"))
	{
		fprintf(stderr, "Could not initialize tesseract.\n");
		exit(1);
	}

	// Open input image with leptonica library
	Pix *image = pixRead("./2.png");
	api->SetImage(image);
	// Get OCR result
	outText = api->GetUTF8Text();
	printf("---- OCR output:---- \n%s", outText);

	// Destroy used object and release memory
	api->End();
	delete[] outText;
	pixDestroy(&image);
	system("Pause");
	return 0;
}

识别结果:
Tesseract API 在 Visual Studio 2013中的配置以及调用Tesseract API 在 Visual Studio 2013中的配置以及调用