程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> tesseract 編譯與使用(windows),tesseractwindows

tesseract 編譯與使用(windows),tesseractwindows

編輯:關於.NET

tesseract 編譯與使用(windows),tesseractwindows


tesseract是google的一個開源OCR項目,項目地址已經遷移到github(現在 2016/09),地址 https://github.com/tesseract-ocr/tesseract

 

首先使用git將代碼clone到本地。使用最新的commit, SHA-1: c943fc1a339d6378f34cccf4ff96949adb2f37ec

編譯步驟參考 https://github.com/tesseract-ocr/tesseract/wiki/Compiling

下面是詳細步驟和相關問題解決方法

我使用的VS2010

 

1.安裝cmake 並添加到環境變量.下載地址 https://cmake.org/download/

2.安裝cppan 並添加到環境變量,下載地址 https://cppan.org/client/cppan-master-win32-client.zip

3.在你本地的源碼目錄tesseract下執行下列命令

cppan
mkdir build && cd build
cmake .. -DSTATIC=1

 

注意:cppan執行過程中可能需要FANQIANG。

4.在tesseract\build目錄下生成了項目文件,使用VS打開tesseract.sln,如下

 

啟動項目是ALL_BUILD,解決方案配置我使用的是 Release。開始編譯,當然這過程中會出現一大堆錯誤和警告,不用理會靜靜等待編譯完成

1.使用可以轉換編碼格式的工具,將 tesseract\ccmain\equationdetect.cpp 的格式轉化下。 我使用的是 Notepad ++ ,格式->轉為 ANSI 編碼格式

原因:tesseract的源文件的編碼格式是UTF-8的,但是中文系統下VS裡的代碼頁編碼格式是GB2312

 

2.bool相關,根據錯誤信息定位到pvt.cppan.demo.gif這個項目,我的是 pvt.cppan.demo.gif-5.1.4.vcxproj ,雙擊打開之,然後在項目中找到 stdbool.h,然後將

#define bool    _bool

更換為

#define bool    int

 

3. snprintf相關,根據錯誤信息定位到pvt.cppan.demo.tiff這個項目,我的是 pvt.cppan.demo.tiff-4.0.6,雙擊打開之,然後在項目中找到  tiffiop.h ,定位到

#if !defined(HAVE_SNPRINTF) && !defined(HAVE__SNPRINTF)
#undef snprintf

將下面的3行換成

#define snprintf _snprintf
//extern int snprintf(char* str, size_t size, const char* format, ...);
#endif

 

然後切換到 tesseract.sln ,清理解決方案重新編譯一遍。

 

然後將 tesseractmain 設為啟動項目,編譯。

 

編譯步驟到此結束,可執行文件在 tesseract\build\bin\Release 下,但是現在還不能直接用,沒有語言包。

語言包下載地址

英文 https://github.com/tesseract-ocr/tessdata/raw/master/eng.traineddata
簡中 https://github.com/tesseract-ocr/tessdata/raw/master/chi_sim.traineddata 
繁中 https://github.com/tesseract-ocr/tessdata/raw/master/chi_tra.traineddata

 

創建一個tessdata目錄,和tesseract.exe同級,將下載的語言包復制到tessdata目錄下。然後打開cmd,執行命令就可以看到結果

 

tesseract.exe test.png -l eng+chi_sim result

 

test.png 是待識別的圖片

-l eng+chi_sim 指定識別語言為英文和簡體中文,多語言使用+連接

result 指定輸出的文本文件

 

 

 

更多的命令請參考 https://github.com/tesseract-ocr/tesseract/wiki/Command-Line-Usage

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved