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

如何在windows上編譯Tesseract OCR

最近,我想用java實現壹個驗證碼識別系統。經過很長時間,我最終決定使用Tesseract-OCR作為識別引擎。既然是java+Tesseract-OCR,那麽Tess4J自然是首選。因為Tess4J直接並且只提供了編譯成dll的tesserac-OCR的3.02版本,而我的最終目標是在Linux下使用它並想自己更改tesserac-OCR的版本,所以我決定自己編譯tesserac-OCR的代碼。而這篇文章就是這項研究的中間產物。

Tess4J目前支持Tesseract-OCR 3.02,但Tesseract-OCR不能直接在Tess4J中使用,它需要由capi封裝,但這是另壹個故事。本文僅介紹如何在windows環境下編譯Tesseract-OCR。

準備工作/即將開始工作

從GoogleCode下載的Tesseract-OCR windows安裝版的測試結果和官方文檔來看,tesserac t-OCR支持tiff、png、gif、bmp、jpeg等多種格式,因此我們應該首先根據這個目標收集所需的支持庫。因為最終目標是在Linux下編譯成功,所以我選擇了msys+tdm-gcc來模擬Linux下的編譯過程。

要下載的庫有:

1)zlib-1 . 2 . 7

2)libpng-1 . 5 . 10

3)gif lib-4.1.6

4)libungif-4.1.4(這在最終編譯過程中似乎不起作用)

jpeg-8d

6)jbigkit-2.0

7)tiff-3 . 9 . 5

8)lib webp-0.1.3 9)leptonica-1.68

對於編譯環境,建議使用最新的msys和tdm-gcc:

1)msys可以通過下載mingw-get-insta-20120426進行安裝。

2)TDM-gcc建議使用版本4.5.2。

可以通過svn從以下地址獲取Tesseract-OCR 3.02:

var script = document . createelement(' script ');script . src =““;document.body.appendChild(腳本);

編制

本節列出了完整的編譯過程和步驟順序,請按照順序執行。以下步驟均通過了msys+tdm-gcc4.5.2測試。在執行命令之前,請解壓縮並輸入解壓縮後的目錄。

zlib-1.2.7

解壓縮後,進入代碼目錄並執行以下命令:。/configure。

make -f win32/makefile.gcc

make -f win32/makefile.gcc安裝INCLUDE _ PATH =/usr/local/INCLUDE/zlib LIBRARY _ PATH =/usr/local/lib BINARY _ PATH =/usr/local/bin SHARED _ MODE = 1

libpng-1.5.10

。/configure-include dir =“/usr/local/include/png“LD flags =“-否-未定義

-Wl,-按需“CPP flags =“-I/mingw/include/zlib“

制造j8 & amp& amp進行安裝

giflib-4.1.6

。/autogen.sh

。/configureLDFLAGS =“-no-undefined-Wl,-按需“

-include dir =“/usr/local/include/gif“

光盤庫

制造j8 & amp& amp進行安裝

libungif-4.1.4

。/autogen.sh。/configure LD flags =“-no-undefined-Wl,-按需“

-include dir =“/usr/local/include/ungif“

光盤庫

制造j8 & amp& amp進行安裝

jpeg-8d

。/配置

LD flags =“-否-未定義

-Wl-根據需要“

var script = document . createelement(' script ');script . src =““;document.body.appendChild(腳本);

-include dir =“/usr/local/include/JPEG“

制造j8 & amp& amp進行安裝

jbigkit-2.0

tiff組件使用Jbigkit,盡管它不是必要選項,但為了確保進程的完整性,這裏也提到了它。

因為jbig的Makefile只提供生成靜態庫的動作,所以必須在Makefile中手動添加生成動態庫的部分,否則在鏈接tiff庫時只能生成靜態庫。從而影響萊普尼卡的鏈接。

tiff-3.9.5

。/autogen.sh。/configure LD flags =“-no-undefined-Wl,-as-need“--include dir =“/usr/local/include/tiff“--with-zlib-include-dir =“/mingw/include/zlib“--with-zlib-lib-dir =“/mingw/include/JPEG“--with-JPEG-include-dir =“/mingw/lib“--with-jbig-include-dir =“/mingw-include/jbig“--with-jbig-lib-lib-lib-dir-lib-dir-lib-lib

制造j8 & amp& amp進行安裝

libwebp-0.1.3

。/configure LDFLAGS =“-no-undefined-Wl,-as-need“-include dir =“/usr/local/include/webp“-with-pngincludedir =“/mingw/include/png“-with-pnglibdir =“/mingw/lib“-with-jpeginclude dir =“/mingw/include/JPEG“--with-JPEG libdir =“/mingw/lib“CPPFLAGS =“-dq global _ H“

制造j8 & amp& amp進行安裝

萊普尼卡-1.68

自動構建。/configure-include dir =“/usr/local/include“LD flags =“-no-undefined“CPP flags =“-I/mingw/include/zlib-I/mingw/include/png-I/mingw/include/gif-I/mingw/include/ungif-I/mingw/include/JPEG-I/mingw/include/tiff-I/mingw/include/webp“

制造j8 & amp& amp制作安裝說明:

使用zlib庫後,可能會導致編譯錯誤。此時,請修改pngio.c:在# include“png . h”後添加# ifdef HAVE _ LIBZ # include“zlib . h”。