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

轉載:
https://blog.csdn.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庫之後,我們便在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

在這裏插入圖片描述

添加屬性表

首先將“D:\Tesseract 3.0\include”目錄拷貝到本地工程“Tesseract Demo”所在目錄。
然後進行以下設置:
在“解決方案管理器”所在區域,切換到“屬性管理器”窗口;
右鍵“Tesseract Demo”工程–>“添加現有屬性表(E)…”–>在“Tesseract Demo\include”目錄下找到“tesseract_versionnumbers.props”–>“打開”;

在這裏插入圖片描述

配置庫文件

在“解決方案管理器”窗口–>右鍵“Tesseract Demo”工程–>“屬性®”–>“配置屬性”–>“連接器”–>“常規”–>“附加庫目錄”: 在“Tesseract Demo”工程中所有“活動解決方案平臺”的所有“活動解決方案配置”中都添加如下內容:

D:\Tesseract 3.0\Lib

在這裏插入圖片描述

添加預定義

在“解決方案管理器”窗口–>右鍵“Tesseract Demo”工程–>“屬性®”–>“配置屬性”–>“C/C++”–>“預處理器”–>“預處理器定義”–>按“活動解決方案配置”類型“添加”如下列表中的“預定義”內容:

WIN32
_WINDOWS
NDEBUG
USE_STD_NAMESPACE
_DEBUG
_CONSOLE
_LIB
_CRT_SECURE_NO_DEPRECATE

在這裏插入圖片描述

添加附加庫

在“解決方案管理器”窗口–>右鍵“Tesseract Demo”工程–>“屬性®”–>“配置屬性”–>“連接器”–>“輸入”–>“附加依賴項”–>按“活動解決方案配置”類型“添加”如下列表中的“附加庫”內容:

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

如下圖:

注意:
如果出現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;
}

識別結果:
在這裏插入圖片描述在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章