DRYな備忘録

Don't Repeat Yourself.

tesseract3.02.02をソースからインストール

goal

tesseractというコマンドをbrewを使わずにソースからMacにインストールする

problem

C++で書かれたOCRライブラリTesseract-OCR

tesseract --list-langs

というコマンドオプションが使えなかった

tesseract -v
tesseract 3.01

--list-langsが使えるバージョンは

tesseract -v
tesseract 3.02.02

brew install tesseractがv3.01を落として来ているようだ。ソースからインストールするしかない

log

> cd ~/src
> wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.02.tar.gz
# 略
> tar -zxf tesseract-ocr-3.02.02.tar.gz
# 略
> cd tesseract-ocr
./configure --prefix=/usr/local/Cellar/tesseract/3.02
# 前略
Configuration is done.
You can now build tesseract by running:

% make
> make install
# make と make install って何が違うんだ?
# 略
> which tesseract
tesseract not found
# ん?まじ?入ってない?

> /usr/local/Cellar/tesseract/3.02/bin/tesseract  -v
tesseract 3.02.02
 leptonica-1.68
  libjpeg 8d : libpng 1.5.4 : libtiff 3.9.5 : zlib 1.2.5

# PATH通ってなかっただけか

> /usr/local/Cellar/tesseract/3.02/bin/tesseract --list-langs
Error opening data file /usr/local/Cellar/tesseract/3.02/share/tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.
Failed loading language \'eng\'
Tesseract couldn\'t load any languages!
Could not initialize tesseract.
>

# うんイケてるっぽい

extra : 'eng'を有効な言語としてtesseractに追加する

さきほど--list-langsしたときに以下のように叱られました

Error opening data file /usr/local/Cellar/tesseract/3.02/share/tessdata/eng.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory. Failed loading language \'eng\' Tesseract couldn\'t load any languages! Could not initialize tesseract.

どうやら、tessdateディレクトリに{言語}.traineddataを配置して、そのディレクトリの親ディレクトリに$TESSDATA_PREFIXというenvで通せばいいっぽい?

> mkdir -p ~/src/tessdata
# とりあえずここでいいや
> cd ~/src/tessdata
> wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.eng.tar.gz
> tar -zxf tesseract-ocr-3.02.eng.tar.gz
> ls tesseract-ocr
tessdata
# おおむしろここにtessdataくるんか...
> mv tesseract-ocr/tessdata/eng.traineddata ~/src/tessdata
> export TESSDATA_PREFIX=~/src/tessdata
> /usr/local/Cellar/tesseract/3.02/bin/tesseract --list-langs
Error opening data file /Users/otiai10/src/tessdata/tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.
Failed loading language \'eng\'
Tesseract couldn\'t load any languages!
Could not initialize tesseract.
# お?いけてない?
# あ、親ディレクトリか...
> export TESSDATA_PREFIX=~/src
> /usr/local/Cellar/tesseract/3.02/bin/tesseract --list-langs
List of available languages (1):
eng
>

いけたっぽい

jpnもあるから同じ作業すればいいはず