// 挿入可能なプリミティブ数の上限を設定する // 上限に達した場合は、medit_insertやmedit_separateでエラーが返る // その場合はクラスをいったん破棄して、再度new、その後msetinsertmaxしなおしてから再挿入 // 入力 // int insertmax; デフォルト値は0、通常のA3,400dpi日本語文書では10000で十分 void msetinsertmax(int insertmax){minsertmax = insertmax;}サンプルコード
#include "ocrdef.h" #include "ocrco.h" #include "cjocrprim.h" #include "errcode.h" ... .... // ライセンサーから供給される20桁のコードあるいはライセンスコードファイルのパスを指定して、ライブラリを初期化 CJocrPrim* pjocrprim = new CJocrPrim("ABCDEFGHJKLMNPQ23456"); // ライセンスコードパスの場合はCJocrPrim* prim = new CJocrPrim("C:\\Program Files\\Foo\\primitive.kcd"); pjocrprim->msetdocument(mdata,0,mwidth,mheight); // 背景が0前景が1のモノクロ画像 pjocrprm->msetdpi(400); pjocrprm->msetinsertmax(10000); ret = pjocrprim->makeprim(); if(ret < 0) { エラー; } delete pjocrprim; ...
// プリミティブ/クラスタを削除 // 入力 // int flag; 1...画像データに反映させる/0...させない // PRIMITIVE* prim; プリミティブ(アドレスを用いるのでコピーは駄目) // 戻り値 // 0 正常終了 // 負 エラー int medit_delete(int flag,PRIMITIVE* prim); int medit_delete(int flag,CLUSTER* pcluster);サンプルコード
#include "ocrdef.h" #include "ocrco.h" #include "cjocrprim.h" #include "errcode.h" ... .... // ライセンサーから供給される20桁のコードあるいはライセンスコードファイルのパスを指定して、ライブラリを初期化 CJocrPrim* pjocrprim = new CJocrPrim("ABCDEFGHJKLMNPQ23456"); // ライセンスコードパスの場合はCJocrPrim* prim = new CJocrPrim("C:\\Program Files\\Foo\\primitive.kcd"); pjocrprim->msetdocument(mdata,0,mwidth,mheight); // 背景が0前景が1のモノクロ画像 pjocrprm->msetdpi(400); pjocrprm->msetinsertmax(10000); ret = pjocrprim->makeprim(); if(ret < 0) { エラー; } // 1...プリミティブの選択操作、クラスタの抽出操作 // 2...選択したプリミティブを削除して元画像にも反映させる場合 int i1 = pjocrprim->medit_delete(1,prim); if(i1 < 0) { エラー; } delete pjocrprim; ...
// プリミティブを挿入(pjocrprimがthisの場合はコピーとなる) // 入力 // int flag; 1...画像データに反映させる/0...させない // CJocrPrim* pjocrprim; primの属するCJocrPrimのインスタンス // PRIMITIVE* prim; プリミティブ(アドレスを用いるのでコピーは駄目) // CLUSTER* pcluster; クラスタ(アドレスを用いるのでコピーは駄目) // int left,top; 移動先 // 出力 // PRIMITIVE*&priminsert; 挿入プリミティブのアドレス // 戻り値 // 0 正常終了 // 負 エラー int medit_insert(int flag,CJocrPrim* pjocrprim,PRIMITIVE* prim,int left,int top,PRIMITIVE*& priminsert); int medit_insert(int flag,CJocrPrim* pjocrprim,CLUSTER* pcluster,int left,int top); // 全てのプリミティブをクラスタ化 // レンダリングやクラスタ移動に用いる int mallprim2cluster();サンプルコード
#include "ocrdef.h" #include "ocrco.h" #include "cjocrprim.h" #include "errcode.h" ... .... // ライセンサーから供給される20桁のコードあるいはライセンスコードファイルのパスを指定して、ライブラリを初期化 CJocrPrim* pjocrprim = new CJocrPrim("ABCDEFGHJKLMNPQ23456"); // ライセンスコードパスの場合はCJocrPrim* prim = new CJocrPrim("C:\\Program Files\\Foo\\primitive.kcd"); pjocrprim->msetdocument(mdata,0,mwidth,mheight); // 背景が0前景が1のモノクロ画像 pjocrprm->msetdpi(400); pjocrprm->msetinsertmax(10000); ret = pjocrprim->makeprim(); if(ret < 0) { エラー; } // 1...挿入する画像に対して別のCJocrPrimのインスタンスpjocrprim1でmakeprim // 2...makeallprim2clusterで全てのプリミティブを一つのクラスタにまとめる // 3...クラスタを指定位置に挿入する int i1 = pjocrprim->medit_insert(1,pjocrprim1,pcluster,100,100); if(i1 < 0) { エラー; } delete pjocrprim; ...
// プリミティブ/クラスタを移動(コピー+削除ではコストが大きいためこちらを用いると良い) // 入力 // int flag; 1...画像データに反映させる/0...させない // PRIMITIVE* prim; プリミティブ(アドレスを用いるのでコピーは駄目) // CLUSTER* pcluster; クラスタ(アドレスを用いるのでコピーは駄目) // int left,top; 移動先 // 戻り値 // 0 正常終了 // 負 エラー int medit_move(int flag,PRIMITIVE* prim,int left,int top); int medit_move(int flag,CLUSTER* pcluster,int left,int top);サンプルコード
#include "ocrdef.h" #include "ocrco.h" #include "cjocrprim.h" #include "errcode.h" ... .... // ライセンサーから供給される20桁のコードあるいはライセンスコードファイルのパスを指定して、ライブラリを初期化 CJocrPrim* pjocrprim = new CJocrPrim("ABCDEFGHJKLMNPQ23456"); // ライセンスコードパスの場合はCJocrPrim* prim = new CJocrPrim("C:\\Program Files\\Foo\\primitive.kcd"); pjocrprim->msetdocument(mdata,0,mwidth,mheight); // 背景が0前景が1のモノクロ画像 pjocrprm->msetdpi(400); pjocrprm->msetinsertmax(10000); ret = pjocrprim->makeprim(); if(ret < 0) { エラー; } // 1...プリミティブ選択あるいはクラスタ抽出操作 // 2...指定したプリミティブを移動して元画像に反映させる int i1 = pjocrprim->medit_move(1,prim,100,100); if(i1 < 0) { エラー; } delete pjocrprim; ...
// クラスタを分割(ピクセルデータの消長が存在しない。表示上切れ目は存在しない) // (処理コストが高いので注意:分割対象が多い場合は再初期化のほうが速い) // 1...分割対象プリミティブをクラスタとしてコピー // 入力 // int linenum; 切断線の数 // int* px1; 切断線の始点と終点の座標(linenum個ずつ) // int* py1; // int* px2; // int* py2; // CLUSTER* pcluster; 切断対象のクラスタ // 戻り値 // 0 正常終了 // 負 エラー int medit_separate(int linenum,int* px1,int* py1,int* px2,int* py2,CLUSTER* pcluster);サンプルコード
#include "ocrdef.h" #include "ocrco.h" #include "cjocrprim.h" #include "errcode.h" ... .... // ライセンサーから供給される20桁のコードあるいはライセンスコードファイルのパスを指定して、ライブラリを初期化 CJocrPrim* pjocrprim = new CJocrPrim("ABCDEFGHJKLMNPQ23456"); // ライセンスコードパスの場合はCJocrPrim* prim = new CJocrPrim("C:\\Program Files\\Foo\\primitive.kcd"); pjocrprim->msetdocument(mdata,0,mwidth,mheight); // 背景が0前景が1のモノクロ画像 pjocrprm->msetdpi(400); pjocrprm->msetinsertmax(10000); ret = pjocrprim->makeprim(); if(ret < 0) { エラー; } // 1...クラスタ抽出操作 // 2...指定したクラスタを切断 int x1[1]; int y1[1]; int x2[1]; int y2[1]; x1[0] = 100; y1[0] = 100; x2[0] = 200; y2[0] = 200; int i1 = pjocrprim->medit_separate(1,x1,y1,x2,y2,pcluster); if(i1 < 0) { エラー; } delete pjocrprim; ...
// クラスタを分割(ピクセルデータの消長が存在しない。表示上切れ目は存在しない) // (処理コストが高いので注意:分割対象が多い場合は再初期化のほうが速い) // 1...分割対象プリミティブをクラスタとしてコピー // 入力 // int linenum; 切断線の数 // int* px1; 切断線の始点と終点の座標(linenum個ずつ) // int* py1; // int* px2; // int* py2; // CLUSTER* pcluster; 切断対象のクラスタ // 戻り値 // 0 正常終了 // 負 エラー int medit_sever(int linenum,int* px1,int* py1,int* px2,int* py2,CLUSTER* pcluster);サンプルコード
#include "ocrdef.h" #include "ocrco.h" #include "cjocrprim.h" #include "errcode.h" ... .... // ライセンサーから供給される20桁のコードあるいはライセンスコードファイルのパスを指定して、ライブラリを初期化 CJocrPrim* pjocrprim = new CJocrPrim("ABCDEFGHJKLMNPQ23456"); // ライセンスコードパスの場合はCJocrPrim* prim = new CJocrPrim("C:\\Program Files\\Foo\\primitive.kcd"); pjocrprim->msetdocument(mdata,0,mwidth,mheight); // 背景が0前景が1のモノクロ画像 pjocrprm->msetdpi(400); pjocrprm->msetinsertmax(10000); ret = pjocrprim->makeprim(); if(ret < 0) { エラー; } // 1...クラスタ抽出操作 // 2...指定したクラスタを切断 int x1[1]; int y1[1]; int x2[1]; int y2[1]; x1[0] = 100; y1[0] = 100; x2[0] = 200; y2[0] = 200; int i1 = pjocrprim->medit_sever(1,x1,y1,x2,y2,pcluster); if(i1 < 0) { エラー; } delete pjocrprim; ...