天天看點

tesseract系列(2) -- tesseract的使用

上文說了怎麼編譯成庫,這次說說怎麼使用,先驗證下編譯出來的結果。

下圖是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的裡面。

都跑通了才開始記錄,全靠回憶,有的地方不是很仔細。