ドキュメントの設定
1行認識を実行する対象のドキュメントを設定する。ドキュメントの大きさに応じたメモリ確保も行う。
// ドキュメントの初期化
int msetdocument(OCRBuffer* apocrbuffer);
入力
OCRBuffer* apocrbuffer;
top...バッファアドレス
width...バッファ横幅(ピクセル単位・8の倍数)
height...バッファ縦幅(ピクセル単位)
返り値
0.................正常終了
MEMORY_SHORTAGE...メモリ不足
// 解像度の設定
void msetdpi(int adpi);
入力
int adpi; 解像度
例
#include "ocrdef.h"
#include "ocrco.h"
#include "cjocrstock.h"
#include "cjocrdict98.h"
#include "cjocrpat98.h"
#include "cjocrrec98.h"
#include "cjocrline98.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行認識クラス作成
CJocrLine* pjocrline = new CJocrLine;
pjocrline->msetpatter(pattern);
pjocrline->msetrecognize(precognize);
// ドキュメントの設定
OCRBuffer ocrbuffer;
ocrbuffer.top = gbuffer1;
ocrbuffer.width = 1024; // ドキュメントの幅(ピクセル単位)
ocrbuffer.height = 1024; // ドキュメントの高さ(ピクセル単位)
ret = pjocrline->msetdocument(&ocrbuffer);
if(ret < 0) {
printf("エラー");
}
pjocrline->msetdpi(400); // 解像度400dpi
....
...
..
// 別のドキュメントを設定
ocrbuffer.top = gbuffer2;
ocrbuffer.width = 2048; // ドキュメントの幅(ピクセル単位)
ocrbuffer.height = 1024; // ドキュメントの高さ(ピクセル単位)
ret = pjocrline->msetdocument(&ocrbuffer);
if(ret < 0) {
printf("エラー");
}
pjocrline->msetdpi(300); // 解像度300dpi
....
...
..
delete pjocrline;
delete precognize;
delete pjocrdict;
delete pattern;