OCR之Tesseract在VS2010中的使用

时间:2022-05-26 09:05:33

一,下载lib和dll

可以从这里 http://code.google.com/p/tesseract-ocr/downloads/list   下载

tesseract-ocr-setup-3.02.02.exe Windows installer of tesseract-ocr 3.02.02 (including English language data)     Featured

然后进行安装,如此可以方便地省去好多配置细节:如修改环境变量【如果不采用环境变量方式,则需要对于每个工程目录建立tessdata文件夹,并且里面放置所需要的chi_sim.traineddata等语言包】,也不再需要下载tesseract-3.02.02-win32-lib-include-dirs.zip, 更方便以后 训练出自己的 traineddata 文件 

需要注意的是,安装目录下lib里面 libtesseract302d.dll 是针对VS2008的,需要用一个vs2010编译出的替换下来才可以在VS2010下正常使用。

另外还需要将 liblept168.dll 和 liblept168d.dll两个文件一并下载放到lib里面。 (我的资源库有这几个文件)

二,修改环境变量Path

      在环境变量Path中增加指向 安装目录下lib的路径,比如C:\Program Files\Tesseract-OCR\lib  ,以便exe运行时能找到所需要的dll 

三,工程中属性中增加路径

      在自己的工程属性中VC++目录下增加包含目录和库目录,以便VS2010查找文件。例如

包含目录  下新增:C:\Program Files\Tesseract-OCR\include\tesseract

库目录      下新增: C:\Program Files\Tesseract-OCR\lib  

四,增加语言训练包

      直接将语言训练包放置在 安装目录 tessdata文件夹 下就好,比如将tesseract-ocr-3.02.chi_sim.tar.gz中的chi_sim.traineddata 文件直接抽取出来放在  C:\Program Files\Tesseract-OCR\tessdata 下面,就可以支持中文简体字符的识别啦。当然,自己训练出来的 traineddata 文件也是要放在这里的才生效。


测试代码:

#include "stdafx.h"  
#pragma comment(lib, "libtesseract302.lib")
#pragma comment(lib, "liblept.lib")
#include "tesseract\baseapi.h"
#include "tesseract\strngs.h"


int _tmain(int argc, _TCHAR* argv[])
{
const char * image = "image.jpg";

tesseract::TessBaseAPI api;
api.Init(NULL, "eng", tesseract::OEM_DEFAULT);
api.SetVariable( "tessedit_char_whitelist", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" );

STRING text_out;
if (!api.ProcessPages(image, NULL, 0, &text_out))
{
return 0;
}

printf(text_out.string());

return 0;
}

测试图片OCR之Tesseract在VS2010中的使用

测试结果OCR之Tesseract在VS2010中的使用

注意要添加:
#pragma comment(lib, "libtesseract302.lib")
#pragma comment(lib, "liblept.lib")
否则编译链接工程时,会出现错误!!!!!