在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 修改, 諸位喜歡哪種方式就采用哪種方式即可.
- 到此結束…