行の設定、行認識、認識結果の取得
1行認識クラスのインスタンスを用いて1行認識を実行する
// 行の設定
int msetline(OCRRect* pocrrect,unsigned char alinedirection);
入力
OCRRect* pocrrect; 行矩形
unsigned char alinedirection; 行方向
HORIZONTAL_LINE.....縦書き
VERTICAL_LINE.......横書き
返り値
0.................正常終了
MEMORY_SHORTAGE...メモリ不足
-1................認識対象の画像に以上がある(後の処理は可能)
-2................認識対象の画像が小さすぎる/文字列の傾きが大きすぎる(後の処理が不可能)
// pocrrectが外接矩形でなく空白を含む場合はmserlineuserを用いる
int msetlineuser(OCRRect* pocrrect,unsigned char alinedirection);
入力
OCRRect* pocrrect; 行矩形
unsigned char alinedirection; 行方向
HORIZONTAL_LINE.....縦書き
VERTICAL_LINE.......横書き
返り値
0.................正常終了
MEMORY_SHORTAGE...メモリ不足
-1................認識対象の画像に以上がある(後の処理は可能)
-2................認識対象の画像が小さすぎる/文字列の傾きが大きすぎる(後の処理が不可能)
// 1行認識
int mrecognize(unsigned long afilter);
入力
unsigned long afilter; 文字種フィルター
afilterで指定した文字種以外は結果に入らない
認識率や認識速度も上がる
返り値
0.................正常終了
MEMORY_SHORTAGE...メモリ不足
// 認識結果取得
int mgetresult(int& resultnum,OCRResult* pocrresult);
入力
int& resultnum; OCRResult構造体配列のサイズ
OCRResult* pocrresult; OCRResult構造体配列
出力
int& resultnum; 結果の配列の要素数
OCRResult* pocrresult; OCRResult構造体配列
返り値
0...................正常終了
BUFFER_OVERFLOW.....バッファオーバーフロー
この場合、実際の結果は入っていないが、
必要な構造体配列の要素数はresultnumに返る
※:pocrresultにNULLをセットして呼ぶと,resultnumに認識結果の数がセットされる。純粋に
認識結果の数だけ取得したいときは、第2引数にNULLをセットして呼ぶ。
例
#include "ocrdef.h"
#include "ocrco.h"
#include "cjocrstock.h"
#include "cjocrdict98.h"
#include "cjocrpat98.h"
#include "cjocrrec98.h"
#include "cjocrline98.h"
#include "errcode.h"
...
....
// 1行認識クラスの初期化は済んでいるものとする
// インスタンスへのポインタはpjocrline
// 行の設定
OCRRect ocrrect;
ocrrect.x1 = 100;
ocrrect.y1 = 200;
ocrrect.x1 = 300;
ocrrect.y1 = 250;
pjocrline->msetlineuser(&ocrrect,HOROZONTAL_LINE);
// 1行認識
int i1 = pjocrline->mrecognize(CHAR_SET_ALL);
if(i1 < 0) {
printf("認識エラー");
}
// 認識結果取得
int resultnum = 128;
OCRResult ocrresult[128];
i1 = pjocrline->mgetresult(resultnum,ocrresult);
if(i1 < 0) {
printf("認識エラー");
}
// 結果の解釈
//
// ocrresult[0].cand[0].codeが1文字目の認識結果
// ocrresult[1].cand[0].codeが2文字目の認識結果
// ocrresult[0].cand[1].codeが1文字目の第2候補
// ....