
私のプロジェクトの1つでは、文字認識が必要でした。選択はtesseract ocrでした。 Habréには既に同様の
記事がありましたが、現時点では関係ないため、インストール中に著者の指示を正確に繰り返すことはできませんでした。 この記事では、MinGWでのTesseract OCRのインストールプロセスについて説明します。
現在、Googleはtesseract ocrを開発しています。これは、ライブラリが近い将来に開発されることを意味する可能性があります。 MinGWのインストールから始めて、インストールプロセスを可能な限り詳細に説明しようとします。
MinGWインストール
開始するには、MinGWをインストールする必要があります。MinGW
はプロジェクトの公式Webサイトからダウンロードできます。 インストール中に、次のオプションを選択する必要があります。
ステップ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をインストールする
最初に、ライブラリを保存するディレクトリを作成します(例
: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
