http://code.google.com/p/tesseract-ocr/
プロジェクトのサイトにあるように、元々HP社で開発されたOCRソフトで、現在はGoogleプロジェクトとしてメンテナンスされているようです。
今回はWindows版(win32, portable)をダウンロードして試してみました。
FAQはこちら(英語)
画像の中から認識したい文字列があらかじめ決まっている場合は、Configを利用すると良さそうです。
特にオプションを指定しないで実行すると、画像の中から文字のある領域をブロックとして切り出して、認識処理を行いますので多少複雑なレイアウトだと、かえって上手くいかない場合があります。
例えば、” -PSM 6″ というオプションを使うと、画像全体を1個のブロックと思って、そこからテキストの認識を行ってくれます。
さらに、” nobatch digits” というコンフィグオプションを追加すると、アプリケーションフォルダ内の “tessdata/configs/digits” を参照して処理を行います。
ちなみに、 “tessdata/configs/digits” の中身は次のようになっています。
tessedit_char_whitelist 0123456789-.
なので、この “0123456789-.” の部分を認識したい文字列に編集すれば、これにマッチするものだけを取り出すことができます。