上文說了怎麼編譯成庫,這次說說怎麼使用,先驗證下編譯出來的結果。
下圖是debug生成的檔案,裡面有個tesseract的應用程式。
cmd進入目錄下,執行指令:tesseract eurotext.tif euro
eurotext.tif是目前目錄下要識别的圖檔,tif是一種圖檔的格式,在沒接觸tesseract之前,我都沒聽過這種格式,還是特地百度的,可能我是真的菜。
執行完指令以後,會在目前目錄下生成一個euro .txt的檔案,裡面就是識别出來的内容。
建立vs工程,把tiff庫和頭檔案,還有leptonica的庫和頭檔案都加到工程。
如果你是使用的方法2,可能這些檔案都很容易的找到,如果是方法1 怎麼辦呢?
首先說leptonica:
因為我們是使用的cppan自動下載下傳的,是以也不知道存放在什麼地方,而且據我測試,不同的電腦,存放的位置也不一樣,告訴你們一個特别雞賊的辦法:
leptonica的頭檔案有個名字是這個arrayaccess.h的頭檔案。下載下傳安裝everything(一個自動搜尋的軟體,不會的百度吧,很簡單)
搜尋arrayaccess.h檔案,結果如下:
對這個右鍵,打開路徑,提取所有的.h頭檔案,完畢。
找dll和lib的時候,搜尋 anbloomberg.leptonica,各種庫都有了啊
下面找tiff的庫:
記住要用.cppan目錄下的,一般都在C槽,反正很好找,庫的名字都一樣,數字是庫的版本号。
頭檔案搜尋ccmain,然後這些檔案夾的下的頭檔案都需要:
或者你們有自己簡單的辦法可以用啊,我就是自己一點一點瞎找的,反正挺費勁兒。
庫都完事了,下面就是寫代碼。
#include "baseapi.h"
#include "allheaders.h"
int main()
{
char *outText;
tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
if (api->Init(“E:\tessdata“”, "eng"))
{
exit(1);
}
Pix *image = pixRead("./eurotext.tif");
outText = api->GetUTF8Text();
delete[] outText;
pixDestroy(&image);
return 0;
}
注意啊:
if (api->Init(“E:\tessdata“”, "eng"))
這裡init的時候要加入資料集和模型,我是下載下傳的tesseract的安裝包,在安裝目錄中找到的自帶的訓練模型,tessdata檔案件,然後把檔案夾的路徑寫在了init的裡面。
都跑通了才開始記錄,全靠回憶,有的地方不是很仔細。