做字符識別,不能不瞭解google的Tesseract-OCR,但是如何在自己的工程中使用其API倒是語焉不詳,官網上倒是很詳盡地也很囉嗦地介紹如何重新編譯生成適合自己平臺的lib和dll,經過近些天的不斷搜索和嘗試,可算是找了些門路。尤其感謝以下作者的分享帶給我的幫助和啓發:
cxf7394373的 字符識別Google開源Tesseract-ocr的DLL調用方法
下面開始介紹我的使用經驗:
一,下載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裏面。 【這三個文件均可以從tsinson提供的樣例工程裏面找到】
二,修改環境變量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 文件也是要放在這裏的才生效。
五,API簡單使用方法
這裏可以參照cxf7394373的 字符識別Google開源Tesseract-ocr的DLL調用方法
使用其API的一種模式大致是這樣:先包含頭文件,連接庫;然後再定義一個api類,配置好參數之後提取識別結果
#include "strngs.h"
#include "baseapi.h"
#pragma comment(lib,"libtesseract302d.lib")
////////////////
tesseract::TessBaseAPI api;
api.Init(NULL, "eng", tesseract::OEM_DEFAULT); //初始化,設置語言包,中文簡體:chi_sim;英文:eng;也可以自己訓練語言包
//api.SetVariable( "tessedit_char_whitelist", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" );
STRING text_out;
if (!api.ProcessPages("kaze.tif", NULL, 0, &text_out))
{
//AfxMessageBox("tesseract 處理出現異常");
return 0;
}
cout<<text_out.string();
cout<<UTF8ToGBK(text_out.string()).c_str();
可參考文檔
Visual Studio 2013、TortoiseSVN、TortoiseGit、msysgit編譯Tesseract(tesseract-ocr)
http://blog.csdn.net/fksec/article/details/32714639
Tesseract3.02訓練生成新的識別語言庫的詳細步驟 - 科研的起點
http://blog.csdn.net/tuling_research/article/details/41091163
Tesseract3.01 OCR在VS2008環境下的編譯使用(1)
http://www.cnblogs.com/zsb517/archive/2012/06/03/2532488.html
OCR之Tesseract在VS2010中的使用
http://blog.csdn.net/yangbingzhou/article/details/20230533
Tesseract3的常用API
http://blog.csdn.net/yangbingzhou/article/details/20231667
tesseract開發,tesseract資源下載
http://www.csdn.net/tag/tesseract
Tesseract: TessBaseAPI Class Reference
http://tesseract-ocr.repairfaq.org/classTessBaseAPI.html
</pre><pre name="code" class="cpp" style="margin-top: 0px; margin-bottom: 10px; font-size: 13px; line-height: 24.16666603088379px; background-color: rgb(255, 255, 255);">轉自:http://www.xuebuyuan.com/515188.html