【Linux】 OCRライブラリ「NHocr」をインストールする ~ Debian編 ~

■ はじめに

 * OCRについては、以下の関連記事を参照のこと。
http://blogs.yahoo.co.jp/dk521123/36626927.html

■ NHocr に関連する必須ライブラリ

a) O2-tools
http://www.imglab.org/p/O2/
b) FreeType2
https://www.freetype.org/
ダウンロード
[[http://ftp.yzu.edu.tw/nongnu//freetype/?C=M;O=D]]

■ 手順

 * OS : Debian

[0] 前準備

sudo apt-get install build-essential

[1] O2-tools をインストールする

# ホームに移動
cd ~/

# tarファイルをダウンロードする
wget http://www.imglab.org/p/O2/archives/O2-tools-2.01.tar.gz

# 解凍する
tar xvzf O2-tools-2.01.tar.gz

# インストールする
cd O2-tools-2.01
./configure --prefix /usr/local
make
sudo make install

[2] FreeType2 をインストールする

# ホームに移動
cd ~/

# tarファイルをダウンロードする
wget http://ftp.yzu.edu.tw/nongnu//freetype/freetype-2.7.1.tar.gz

# 解凍する
tar xvzf freetype-2.7.1.tar.gz

# インストールする
cd freetype-2.7.1
./configure --prefix /usr/local
make
sudo make install

[3] NHocr をインストールする

# ホームに移動
cd ~/

# tarファイルをダウンロードする
wget https://ja.osdn.net/projects/nhocr/downloads/61902/nhocr-0.22.tar.gz

# 解凍する
tar xvzf nhocr-0.22.tar.gz

# インストールする
cd nhocr-0.22
./configure --prefix=/usr/local CXXFLAGS="-I/usr/local/include/freetype2"
make
sudo make install

# 確認
cd test
./run-test

# 以下、出力結果
fs.pgm: ファイルシステム
hello.pgm: ニんにちは、

tohoku.pgm: 東北

tohoku3.pgm: 
# Character candidates table
#   produced by: NHocr - Japanese OCR  v0.22 
(以下略)

■ 別の画像で確認する

手順

[1] GIMPなどで画像を作成する(今回はファイル名「sample.jpg」で「山田 太郎」と記載した画像)
[2] convertコマンドで、PGMファイルに変換し、「~/nhocr-0.22/test」に保存する
~~~~
convert sample.jpg sample.pgm
~~~~
[3] 「~/nhocr-0.22/test/run-test」を参考に、実行できるファイルを作成し、
    「~/nhocr-0.22/test」に保存する
    (今回はファイル名「run-sample」で、内容は以下の「run-sample」を参照)
[4] [3]のファイルを実行する
~~~~
cd ~/nhocr-0.22/test
./run-sample

# 実行結果
山田 太郎
~~~~
run-sample
#!/bin/bash

NHOCR_DICDIR=../dic ../nhocr/nhocr -line -o - sample.pgm
echo 

■ メモ

 * 「nhocr-0.22/nhocr/nhocr.cpp」にメイン関数がある

nhocr.cpp

・・・略・・・
//475行付近
/*----------------------------------------------
    Main routine
----------------------------------------------*/

int main(int ac,char *av[]){
	char	*infile  = NULL;
	char	*outfile = NULL;
	FILE	*fp_out = stdout;
	int	width=0,height=0;
	int	csize = 16;
	int	i,k;
	int	argn = 1;
	SIPImage	*image, *bimage;
	NHrec	NHrec;


関連記事

Java】 画像から文字列を取得する [1] ~ 光学文字認識 / OCRライブラリ・基本編 ~

http://blogs.yahoo.co.jp/dk521123/36626927.html

Java】【C】【C++】 JNA (Java Native Access)

http://blogs.yahoo.co.jp/dk521123/36187289.html

Linux(仮想環境) で、JDK / Tomcat / Eclipse の環境を構築する ~Debian編~

http://blogs.yahoo.co.jp/dk521123/33854227.html