OCR之Tesseract使用

一,下载lib和dll

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

然后进行安装,如此可以方便地省去好多配置细节:如修改环境变量【如果不采用环境变量方式,则需要对于每个工程目录建立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 文件也是要放在这里的才生效。


测试代码:


  
  
  1. #include "stdafx.h"
  2. #pragma comment(lib, "libtesseract302.lib")
  3. #pragma comment(lib, "liblept.lib")
  4. #include "tesseract\baseapi.h"
  5. #include "tesseract\strngs.h"
  6. int _tmain( int argc, _TCHAR* argv[])
  7. {
  8. const char * image = "image.jpg";
  9. tesseract::TessBaseAPI api;
  10. api.Init( NULL, "eng", tesseract::OEM_DEFAULT);
  11. api.SetVariable( "tessedit_char_whitelist", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" );
  12. STRING text_out;
  13. if (!api.ProcessPages(image, NULL, 0, &text_out))
  14. {
  15. return 0;
  16. }
  17. printf(text_out. string());
  18. return 0;
  19. }

测试图片

测试结果

注意要添加:

  
  
  1. #pragma comment(lib, "libtesseract302.lib")
  2. #pragma comment(lib, "liblept.lib")
否则编译链接工程时,会出现错误!!!!!


猜你喜欢

转载自blog.csdn.net/monk1992/article/details/89206236