Javaで使いたく。以下、動かした手順メモです。動作環境はOSX10.11.2です。
brewで本体を入れます。
brew install tesseract
ライブラリ自体はc++らしく、Javaで利用できるラッパーを作ってくれた偉い方がいます。ありがたく使わせていただきます。
Tess4J - JNA wrapper for Tesseract
まず、ターミナルでコマンドが動くか確認します。コマンドで動かなければプログラムからも動かない(はず)。
Tess4Jフォルダの中にサンプル画像(eurotext.png)がありますので、そこでターミナルを開き、以下のコマンドを入力します。result.txtというファイルが作成されて認識結果が書き込まれます。
tesseract eurotext.png result
で、このときにエラーが出る場合があるかもしれません。私は出ました(が、翌日やったら出なかった、意味不明)。以下の環境変数を追加します。私はzshなので.zprofileに追加しました。
export TESSDATA_PREFIX="/usr/local/Cellar/tesseract/3.04.00/share"
で、準備ができたのでEclipseを起動しJavaプロジェクトを作成します。
次に、Tess4Jフォルダ内のdistとlibにあるjarをEclipseのプロジェクトに追加します。
ちなみにビルド上は全部は必要ないようですが、実行時にエラーがでるので追加します(→これでclasspathに追加されるため)。もしくは/Library/Java/Extensionsに入れちゃえばいいのかもしれません。
以下のクラスを作成して実行します。認識させたい画像ファイルは適当に各自で用意してJavaプロジェクト直下に配置しましょう。ちなみにこのサンプルは以下のサイトを参考にしました。
Development with Tess4J in NetBeans, Eclipse, and Command-line
import java.io.File; import net.sourceforge.tess4j.*; public class TesseractExample { public static void main(String[] args) { File imageFile = new File("a.png"); ITesseract instance = new Tesseract(); instance.setDatapath(System.getenv("TESSDATA_PREFIX")); try { String result = instance.doOCR(imageFile); System.out.println(result); } catch (TesseractException e) { System.err.println(e.getMessage()); } } }
原理も仕組みもよくわからず、とりあえず動かすことを優先した手順ですので、間違っているかもしれません。そのときは各自で修正してください。