登録
ユーザ辞書にレコードを登録する。パターン画像そのものをパターンクラスのインスタンスに設定し、パターンの特徴ベクトルを計算してから、そのインスタンスを引数にして登録関数を呼ぶ。ユーザー辞書はシステム辞書との差分を登録するため、登録する辞書クラスは、通常の認識と同様にシステム辞書をロードして初期化しておく必要がある。
int mput(char* akey,CJocrPattern* pattern);
入力
char* akey; 登録キー
CJocrPattern* pattern; 登録するパターン
返り値
0.....正常終了
負....FATAL_ERROR........致命的エラー
FILE_SEEK_ERROR....ファイルシークエラー
FILE_WRITE_ERROR...ファイル書き込みエラー
例
#include "ocrdef.h"
#include "ocrco.h"
#include "cjocrstock.h"
#include "cjocrdict98.h"
#include "errcode.h"
...
....
CJocrDict* pjocrdict = new CJocrDict;
pjocrdict->msetsystemdict("c:\\dic\\feature\\system");
pjocrdict->msetsystemdict("c:\\dic\\feature\\systemfat");
pjocrdict->msetuserdict("c:\\dic\\feature\\user");
int ret = pjocrdict->mloaddict();
if(ret < 0) {
printf("エラー");
delete pjocrdict;
exit(0);
}
CJocrPattern* pattern = new CJocrPattern; // 登録するパターン
ret = pattern->mallocmemory();
if(ret < 0) {
printf("エラー");
}
else {
OCRBuffer ocrbuffer;
OCRRect ocrrect;
ocrbuffer.top = gbuffer; // 画像バッファの先頭アドレス
ocrbuffer.width = 1024; // 画像バッファの幅(ピクセル)
ocrbuffer.height = 1024; // 画像バッファの高さ(ピクセル)
ocrrect.x1 = 100;
ocrrect.y1 = 100;
ocrrect.x2 = 300;
ocrrect.y2 = 300;
pattern->mcalcall(&ocrbuffer,&ocrrect,0); // 背景が0とする
ret = pattern->mput("漢",pattern);
if(ret < 0) {
printf("登録エラー");
}
}
delete pattern;
delete pjocrdict;