CGとCVの日記

Computer GraphicsとComputer Visionについて

光学文字認識 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;
}

f:id:daiki_yamanaka:20110206002136p:image
ocrad.png
でやってみると

result = OCR+

と出力されました.

ちゃんと認識できたので次はWEBカメラ+OpenCVでやって見る.