當前位置:成語大全網 - 成語詞典 - 如何在windows上編譯Tesseract OCR

如何在windows上編譯Tesseract OCR

源碼: /tesseract-ocr/tesseract

在github上有在不同系統中編譯教程, Url在這裏

/tesseract-ocr/tesseract/wiki/Compiling

Linux系統的編譯

Linux系統中編譯過程按照教程來就可以, 可能遇到的問題, 也是我遇到的問題就兩處

1. 編譯成功後, 使用LSTM識別時, 無法計算點積, 解決方法很簡單, 把

SIMDDetect::IsAVXAvailable()

SIMDDetect::IsSSEAvailable()

的返回值修改壹下, 直接

return false;

2. 不停顯示ScrollView: Waiting for server…, 出現這個問題主要是由於exe無法找到ScrollView.jar, 只需要在出現此句上方不遠處, 將

scrollview_path = ".";

替換成妳自己的路徑即可

Windows系統的編譯

windows系統編譯就比較坑了. 完全按照教程來理論上是可行的, 但是我不行…困擾許久.

其實思考清楚了也就那麽回事兒, 主要就是由於依賴庫: Leptonica

在使用Cmake將TesseractOCR編譯成vs工程時, 由於在CMakeLists.txt中沒有指定Leptonica庫的路徑, 所以CMake在將TesseractOCR編譯成vs工程時會報錯

於是, 在教程中, 需要大家安裝cppan, 並且在編譯TesseractOCR工程之前, 使用cppan安裝相關依賴. 這種方式確實簡便, 但是對於我天朝閉關鎖國來講, 什麽事兒都可能發生, 反正我是各種報錯…看到心碎… 搜了不少資料說, 可能需要壹些科學技術才能夠成功(fanqiang), 我只能幫妳們到這了.

當然對於我們這些良民來講, 怎麽能做這種事兒呢(主要是藍燈沒流量了..). 於是只好研究壹下其他解決方法. 上面也說了, 問題主要就集中在Leptonica庫的尋找上, 那好, 我們自己加上不就得了…於是, 就是下面

Leptonica網站: /

Leptonica Github: /danbloomberg/leptonica

把源碼下載下來, 自己手動編譯壹下, 很簡單,源碼目錄下執行

cd build

cmake ..

1

2

1

2

即可在build目錄下生成對應sln, 打開編譯即可

- 在TesseractOCR工程目錄下找到CMakeLists.txt, 在

``` if(NOT EXISTS ${PROJECT_SOURCE_DIR}/.cppan)

if (NOT Leptonica_DIR AND NOT MSVC)

find_package(PkgConfig REQUIRED)

pkg_check_modules(Leptonica REQUIRED lept>=${MINIMUM_LEPTONICA_VERSION})

else()

find_package(Leptonica ${MINIMUM_LEPTONICA_VERSION} REQUIRED CONFIG)

endif()

else()

if (STATIC)

set(CPPAN_BUILD_SHARED_LIBS 0)

else()

set(CPPAN_BUILD_SHARED_LIBS 1)

endif()

add_subdirectory(.cppan)

endif()```

之前加上這麽壹句

set(Leptonica_DIR E:/dl/leptonica-master/build)

意思就是我們將我們的Leptonica_DIR路徑告訴編譯系統, 讓他不要亂找了

- OK, 到這裏, Leptonica導致的問題就已經解決啦

- 還剩下的就是壹些由於字符集導致的編譯問題, 就是下面這句

static const STRING kCharsToEx[] = {"'", "`", "\"", "\\", ",", ".",

"〈", "〉", "《", "》", "」", "「", ""};

有兩種解決方案:

壹種是去vs的文件->高級保存選項, 將編碼修改為簡體中文(GB2312) - 代碼頁936

另壹種是按照這個Url: /fengbingchun/article/details/51628957 修改, 諸位喜歡哪種方式就采用哪種方式即可.

- 到此結束…