私のプロジェクトの1つでは、文字認識が必要でした。選択はtesseract ocrでした。 Habréには既に同様の記事がありましたが、現時点では関係ないため、インストール中に著者の指示を正確に繰り返すことはできませんでした。 この記事では、MinGWでのTesseract OCRのインストールプロセスについて説明します。
現在、Googleはtesseract ocrを開発しています。これは、ライブラリが近い将来に開発されることを意味する可能性があります。 MinGWのインストールから始めて、インストールプロセスを可能な限り詳細に説明しようとします。
MinGWインストール
開始するには、MinGWをインストールする必要があります。MinGW はプロジェクトの公式Webサイトからダウンロードできます。 インストール中に、次のオプションを選択する必要があります。
- C ++コンパイラ
- MSYS基本システム
ステップ1. MinGWのインストール:
必要なオプションであるC ++コンパイラとMSYS Basic Systemに注意することを忘れないでください。
次に、[ インストール]セクションに移動して、[ チャネジの適用]を選択します。
次に、選択した[インストールするパッケージを適用]を選択します。
MinGWパッケージのインストールが終了するまで待機し、[ 閉じる ]をクリックします 。
これらの手順を完了した後、インストーラーを閉じることができます。
追加のパッケージをインストールする前に、MinGWディレクトリをPATHに追加する必要があります。
これを行うには、システムプロパティに移動します。
次に、 システムの詳細設定 -> 環境変数 -> 作成に進みます 。
変数名にPATHと入力します。 変数値に、mingwを使用してフォルダーへのパスを入力します。この場合、 C:\ MinGW \ binです。
次に、 Tesseract OCRライブラリを構築するときに必要になるMinGW Shellを使用して、いくつかのパッケージをインストールする必要があります。
MinGWシェルを開くには、フォルダーC:\ MinGW \ msys \ 1.0に移動し、バイナリmsys.batファイルを実行します
開いたコンソールで、次のコマンドを入力します。
mingw-get install mingw32-automake mingw32-autoconf mingw32-autotools mingw32-libz
この場合、これらのパッケージはすでにインストールされていると言われましたが、大丈夫です、それで問題ありません。
重要なポイント ! MinSYSでMinGWを使用してフォルダーをマウントする必要があります。
これを行うには、次の手順を実行します。
ファイルC:\ MinGW \ msys \ 1.0 \ etc \ fstabを作成して、マウントポイント/ mingwにC:\ MinGWディレクトリをマウントします。
#Win32_Path Mount_Point c:/ MinGW / mingw
fstabを作成した後、MinGWシェルを再起動する必要があります。msys.batを閉じて再度開きます。
Leptonicaライブラリのインストール
MinGWをセットアップしたら 、 Leptonicaライブラリをインストールする必要があります。 Tesseract ocrはLeptonicaライブラリを使用してイメージを操作しますが、インストールする前にいくつかの補助ライブラリをインストールする必要があります。
- libJpeg
- libpng
- libTiff
LibJpegをインストールする
最初に、ライブラリを保存するディレクトリを作成します(例:C:\ libs \) 。 このディレクトリで、ライブラリを保存するサブフォルダーlibjpegを作成します。 職場の準備ができたので、 公式サイトからLibJpegをダウンロードし、フォルダーC:\ libs \ libjpegに解凍します。
解凍後、libjpegフォルダーへの次のパスを取得しました。C:\ libs \ libjpeg \ jpegsrc.v8c.tar \ jpegsrc.v8c \ jpeg-8c。
ライブラリをビルドしてインストールする必要があります。これを行うには、MinGWシェルに移動して、次のコマンドを入力します。
cd /C/libs/libjpeg/jpegsrc.v8c.tar/jpegsrc.v8c/jpeg-8c/ ./configure CFLAGS = '-O2' CXXFLAGS = '-O2' --prefix = / mingw 作る インストールする
この時点で、libJpegのインストールは完了です。
libPngをインストールする
プロジェクトの公式サイトからソースアーカイブをダウンロードし、 C :\ libs \ libpngディレクトリに展開します。 MinGWシェルに戻ります。このライブラリのインストール手順は、libJpegのインストールと同じです。 開梱後、次のディレクトリを取得しました: C:\ libs \ libpng \ libpng-1.5.4.tar \ libpng-1.5.4
cd /C/libs/libpng/libpng-1.5.4.tar/libpng-1.5.4/ ./configure CFLAGS = '-O2' CXXFLAGS = '-O2' --prefix = / mingw 作る インストールする
LibTiffビルド
ソースアーカイブは、プロジェクトのftpサーバーからダウンロードできます。 C :\ libs \ libtiffでアーカイブを解凍します。 このライブラリのアセンブリは、前の2つのライブラリのアセンブリに似ています。
解凍後、次のパスが判明しました: C:\ libs \ libtiff \ tiff-3.9.5.tar \ tiff-3.9.5
cd /C/libs/libtiff/tiff-3.9.5.tar/tiff-3.9.5/ ./configure CFLAGS = '-O2' CXXFLAGS = '-O2' --prefix = / mingw 作る インストールする
レプトニカを構築
すべての追加ライブラリをインストールした後、レプトニカを構築します。 まず、Leptonica 1.71をダウンロードする必要があります。これは重要です。バージョン1.71が必要です。 テストが示しているように、より高いバージョンまたはより低いバージョンを使用すると、tesseract ocr自体はビルドされません。 ただし、このバージョンでは、修正する必要があるバグが1つあります。 開始するには、 公式サイトからソースファイルを含むアーカイブをダウンロードします。 ダウンロードしたアーカイブをC:/ libs / leptonica / folderに解凍します 。 開梱後、次のパスを取得しました: C:\ libs \ leptonica \ leptonica-1.71.tar \ leptonica-1.71 。
次のステップは、ライブラリをビルドすることです。以前のライブラリのアセンブリと違いはありません。
cd /C/libs/leptonica/leptonica-1.71.tar/leptonica-1.71/ ./configure CFLAGS = '-O2' CXXFLAGS = '-O2' --prefix = / mingw 作る インストールする
素晴らしい。 アセンブリTesseract OCRに渡します。
Tesseract OCRビルド
Leptonicaを正常に組み立てたら、Tesseract OCRの組み立てに進むことができます。 公式サイトからソースコードのアーカイブをダウンロードしてください。 ダウンロードしたアーカイブをTesseract OCRソースコードとともにフォルダーC:\ libs \ tesseractに解凍します。 開梱後、次のパスを取得しました: C:\ libs \ tesseract \ tesseract-ocr-3.02.02.tar \ tesseract-ocr-3.02.02 \ tesseract-ocr 。
Tesseracr OCRを配置します。
cd /C/libs/tesseract/tesseract-ocr-3.02.02.tar/tesseract-ocr-3.02.02/tesseract-ocr ./configure CFLAGS = '-D__MSW32__ -O2' CXXFLAGS = '-D__MSW32 __- O2' LIBS = '-lws2_32' LIBLEPT_HEADERSDIR = '/ mingw / include' --prefix = / mingw 作る インストールする
Tesseracrtの組み立てプロセスには時間がかかりますが、お茶を飲むこともできます。
Tesseract ocrヘッダーファイルはC:\ MinGW \ include \ tesseractに 、 LeptonicaヘッダーファイルはC:\ MinGW \ include \ leptonicaに 、C:\ mingw \ libにあるすべてのライブラリになります。
将来のプログラムを成功させるには、 公式WebサイトからTesseract ocr SDKをダウンロードしてインストールする必要があります。
Tesseract OCRをインストールした後に現れる小さなバグを修正するために残っています。
これを行うには、Tesseract OCRヘッダーファイルC:\ MinGW \ include \ tesseractのあるフォルダーに移動します。
platform.hファイルで、 BLOB型の繰り返し宣言についてコメントします。 次のようなものが得られるはずです。
/ * typedef struct _BLOB { unsigned int cbSize; char * pBlobData; } BLOB、* LPBLOB; * /
baseapi.hのPBLOBクラスの宣言についてコメントします。
Tesseract OCRテストアプリケーション
tesseract ocrをインストールしたら、テストして、簡単なC ++アプリケーションを作成できます。
#include <tesseract / baseapi.h> #include <leptonica / allheaders.h> #include <string> #include <iostream> int main(int argc、char * argv []) { tesseract :: TessBaseAPI ocr; ocr.Init(NULL、「eng」); if(argc> 1) { PIX * pix = pixRead(argv [1]); ocr.SetImage(pix); std :: string result = ocr.GetUTF8Text(); std :: cout << "認識テキスト:" <<結果<< std :: endl; } 他に std :: cout << "認識のためにプログラムに画像ファイルをドラッグアンドドロップ" << std :: endl; 0を返します。 }
コマンドラインからアプリケーションをビルドできます。
g ++ -O2 main.cpp -o ocr.exe -ltesseract -llept -lws2_32