web-dev-qa-db-ja.com

Windows7のコマンドラインOCR

Windows 7 64ビットで動作するコマンドラインOCRユーティリティにはどのようなものがありますか?

5
Phenom

Tesseract は最高の(無料の)コマンドラインベースのOCRソフトウェアだと思います。残念ながら、利用可能なWindows 7 64ビットバイナリはないようです。そのため、自分でコンパイルする必要があります。これを行うための手順は次のとおりです( Tesseract FAQ page )のコメントから取得):

  1. Tesseract2.04をダウンロードします。開梱します。この例では、C:\ projects\tesseract-2.04に解凍しました。 Windows 7は、そのままでは.tar.gzをまだ理解していません。 7-Zipのコピーを入手することをお勧めします。

  2. 必要な言語ファイルをダウンロードします。ドイツ語と英語が必要です。これらをC:\ projects\tesseract-2.04\tessdataのtessdataサブディレクトリに解凍します。

  3. Libtiffをインストールします。私の(64ビット)システムでは、推奨されるインストールディレクトリはC:\ Program Files(x86)\ GnuWin32?です。このディレクトリの下には、tiffサポートを使用してtesseractをコンパイルするために必要なファイルを含む一連のサブディレクトリがあります。つまり、include、bin、libです。

  4. C:\ Program Files(x86)\ GnuWin32?\ binをPATH環境変数に追加して、出力tesseract.exeがlibtiffdllを見つけられるようにします。再起動。

  5. Vcソリューション(tesseract.sln)を開きます

  6. ソリューション構成を「リリース」モードに変更します。後でデバッグモードに戻す場合は、次のすべてを再度設定する必要があることに注意してください...

  7. ソリューションエクスプローラーで、ソリューションノード(ソリューション 'tesseract')を右クリックし、[プロパティ]をクリックします。 「構成プロパティ」に変更し、ウィンドウ上部のドロップダウンから「リリース」構成を選択します。 [ツール]-> [オプション]-> [プロジェクトとソリューション]-> [VC++ディレクトリ]に移動します。ここでは、サブディレクトリlibのフルパスを追加し、libtiffインストールからインクルードしてVCが必要なヘッダー(.h)ファイルと静的ライブラリ(.lib)ファイル。この例では、環境変数を使用しているため、$(ProgramFiles?)\ GnuWin32?\ include $(ProgramFiles?)\ GnuWin32?\ libです。ただし、C:\ Program Files(x86)\ GnuWin32?\ includeとして書き込むこともできます。[ShowDirectoriesFor]ドロップダウンを[Includefiles]に変更します。次を追加します:$(ProgramFiles?)\ GnuWin32?\ include次に、[ディレクトリの表示]ドロップダウンを[ライブラリファイル]に変更します。次を追加します:$(ProgramFiles?)\ GnuWin32?\ lib

  8. 次に、tesseractプロジェクトのプロジェクトプロパティウィンドウを開きます(ソリューションではありません)。ソリューションエクスプローラーで、tesseractプロジェクトを右クリックし、[プロパティ]をクリックします。オプションの恐ろしいリストを[構成プロパティ]-> [C/C++]-> [プリプロセッサ]に移動し、HAVE_LIBTIFFをプリプロセッサ定義のリストに追加します。これにより、コードで多数の#includeが有効になります。

  9. また、「追加の依存関係」を追加する必要があります。プロジェクトプロパティの「追加の依存関係」セクションに移動し、libtiff.libを追加します。

  10. ソリューションを構築します。エラーリストを見てください。大量のLNK2109エラーが発生した場合は、リンカーがtesseract参照を見つけることができないことを意味します。 libtiffからのパスの1つへの参照がありません。 mt.exeに関するエラーが発生した場合は、SDKにバグが発生している可能性があります。もう一度ビルドしてみてください。詳細については、 http://connect.Microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=106634 を参照してください。

ソリューションが正常にビルドされると、tesseractソリューションファイルと同じディレクトリにtesseract.exeファイルが作成されます。ここに複数ページの圧縮tiffをドラッグして、tesseractを実行してみてください。たとえば、tiffがin.tifと呼ばれ、テキストをout.txtに出力する場合、ドキュメントの言語がドイツ語の場合、コマンドラインは次のようになります。

tesseract.exe in.tif out -l deu出力ファイルには、tesseractによって.txtが追加されます。英語のテキストを翻訳するだけの場合は、-lオプションを省略できます。何も指定しないと、tesseractは「eng」と見なすためです。 tifファイルのファイル拡張子が.tiffの場合、tesseractは次のように自分自身をクラップします。

C:\ projects\tesseract-2.04> tesseract.exe in.tiff out -l deu TesseractオープンソースOCRエンジンname_to_image_type:Error:Unrecognized image type:in.tiff IMAGE :: read_header:Error:Ca n't read this image type: in.tiff tesseract.exe:エラー:ファイルの読み取りに失敗しました:in.tiff

うまくいけば(指が交差しました)、C:\ projects\tesseract-2.04にOCRされたout.txtファイルがあります。

4
jwaddell

JOCRは、私が知っている唯一のWindowsで動作し、コマンドラインベースです。彼らのウェブページを見る ここ

1
Daisetsu

Tesseract用のWindows7用のインストーラーがあります。インストールしたばかりで、小さな画像でOCRを実行できるようになりました。結果はひどいものでしたが、調整を加えることで結果を改善できることを願っています。

0
andrew