ドキュメントの設定
一段落認識を実行する対象のドキュメントを設定する。特にメモリ確保は行わない。
// ドキュメントの初期化
// ドキュメント設定
void msetdocument(unsigned char* data,int width,int height);
void msetdocument(unsigned char* data,int width,int scanlinesize,int height);
入力
unsigned char* data; // 文書画像のアドレス
int width; // 文書画像の幅(ピクセル)
int scanlinesize; // 1行のバイト数
int height; // 文書画像の高さ(ピクセル)
// 解像度の設定
void msetdpi(int dpi);
入力
int dpi; // 解像度
// 座標系の設定
void msetaxis(int axis);
入力
int axis; // 座標系 0...Y軸正は下方向(デフォルト)/1...Y軸正は上方向
// スキューの設定
void msetskew(double skew);
入力
double skew; // スキュー角度をラジアン単位で指定する
// 通常のイタリック体は正、逆スキューも可能
例
#include "ocrdef.h"
#include "ocrco.h"
#include "cjocrstock.h"
#include "cjocrdict98.h"
#include "cjocrpat98.h"
#include "cjocrrec98.h"
#include "cjocrline98.h"
#include "cjocrlang.h"
#include "cjocrblock.h"
#include "errcode.h"
...
....
// パターンクラス作成
CJocrPattern* pattern = new CJocrPattern;
int ret = pattern->mallocmemory();
if(ret < 0) {
printf("パターンクラスメモリ確保エラー");
delete pattern;
exit(1);
}
// 辞書クラス作成
CJocrDict* pjocrdict = new CJocrDict;
pjocrdict->msetsystemdict("c:\\dic\\feature\\system");
pjocrdict->msetsystemdict("c:\\dic\\feature\\systemfat");
pjocrdict->msetuserdict("c:\\dic\\feature\\user");
ret = pjocrdict->mloaddict();
if(ret < 0) {
printf("エラー");
delete pjocrdict;
delete pattern;
exit(1);
}
// 1文字認識クラス作成
CJocrRecognize* precognize = new CJocrRecognize;
precognize->msetpatter(pattern);
precognize->msetdict(pjocrdict);
// 1文字認識クラスの初期化
ret = precognize->mallocmemory();
if(ret < 0) {
printf("エラー");
delete precognize;
delete pjocrdict;
delete pattern;
exit(1);
}
// 言語処理付き1行認識クラス作成
CJocrLang* pjocrlang = new CJocrLang;
pjocrlang->msetpatter(pattern);
pjocrlang->msetrecognize(precognize);
// 1段落認識クラス作成
CJocrBlock* pjocrblock = new CJocrBlock;
pjocrblock->msetlang(pjocrlang);
pjocrblock->msetprocess(PREPROCESS_INSIDE); // 枠に接触するプリミティブを除く
// ドキュメントの設定
pjocrblock->msetdocument(mdata,mwidth,mheight);
pjocrblock->msetdpi(400); // 解像度400dpi
....
...
..
delete pjocrblock;
delete pjocrlang;
delete precognize;
delete pjocrdict;
delete pattern;