光学文字認識 ocrad
光学文字認識に興味があったので Gnu Ocradというライブラリを使ってみた.
ソースはここ->http://www.gnu.org/software/ocrad/
いつもどおり
$ ./configure
$ make
$ sudo make install
でインストール完了.
マニュアルを読むと
どうやらファイルからの入力はpbmかpnm限定らしい.
そこでダウンロードしたフォルダ内にあるocrad.pngをpngtopnmを使って変換.
検出した文字を出力するテストコード完成.
#include <iostream> #include <stdio.h> #include "ocradlib.h" using namespace std; int main(){ if( OCRAD_version()[0] != OCRAD_version_string[0] ) printf( "bad library version\n" ); OCRAD_Descriptor * od; const unsigned char invert = 1; int blocknum, linenum; od = OCRAD_open(); cout <<"error num " << OCRAD_get_errno(od) <<endl; cout << "set image " << OCRAD_set_image_from_file(od, "./ocrad.pnm", 1) << endl; cout <<"error num " << OCRAD_get_errno(od) <<endl; cout << "recognize " << OCRAD_recognize(od, 0) << endl; blocknum = OCRAD_result_blocks(od); cout << "blocknum " << blocknum << endl; for(int i=0; i<blocknum; i++){ linenum = OCRAD_result_lines(od, i); for(int j=0; j<linenum; j++){ printf("result = %s\n", OCRAD_result_line(od, i, j)); } } return 0; }
result = OCR+
と出力されました.
ちゃんと認識できたので次はWEBカメラ+OpenCVでやって見る.