関数 | |
INT FVALGAPI | fnFIE_region_set_connection (FHANDLE hreg, INT connection) |
REGIONオブジェクトの連結性設定関数 | |
INT FVALGAPI | fnFIE_region_calc_boundary (FHANDLE hreg, PNT_T **pnts, UINT *pnum) |
REGION境界点抽出 | |
INT FVALGAPI | fnFIE_region_calc_boundary_ex (FHANDLE hreg, PNT_T **ext_pnts, UINT *ext_pnum, PNT_T **int_pnts, UINT *int_pnum) |
REGION境界点抽出(拡張版) | |
INT FVALGAPI | fnFIE_region_get_perimeter (FHANDLE hreg, DOUBLE *perimeter) |
REGION特徴量:周囲長計測 | |
INT FVALGAPI | fnFIE_region_get_area (FHANDLE hreg, UINT *area) |
REGION特徴量:面積 | |
INT FVALGAPI | fnFIE_region_get_xyrange (FHANDLE hreg, INT *xmin, INT *xmax, INT *ymin, INT *ymax) |
REGION特徴量:座標の最大最小値 | |
INT FVALGAPI | fnFIE_region_get_maxminpos (FHANDLE hreg, INT *xmin_at_ymin, INT *xmax_at_ymax, INT *ymin_at_xmax, INT *ymax_at_xmin) |
REGION特徴量:座標の最大最小位置 | |
INT FVALGAPI | fnFIE_region_get_xydiff (FHANDLE hreg, INT *xdiff, INT *ydiff) |
REGION特徴量:外接矩形サイズ取得(xdiff、ydiff) | |
INT FVALGAPI | fnFIE_region_get_rect1_area (FHANDLE hreg, UINT *area) |
REGION特徴量:外接矩形面積 | |
INT FVALGAPI | fnFIE_region_get_rect1_lratio (FHANDLE hreg, DOUBLE *lratio) |
REGION特徴量:外接矩形縦横比 | |
INT FVALGAPI | fnFIE_region_get_rect1_sratio (FHANDLE hreg, DOUBLE *sratio) |
REGION特徴量:外接矩形面積比 | |
INT FVALGAPI | fnFIE_region_get_moment1 (FHANDLE hreg, DLONG *sumx, DLONG *sumy) |
REGION特徴量:1次モーメント | |
INT FVALGAPI | fnFIE_region_get_moment2 (FHANDLE hreg, UDLONG *sumx2, UDLONG *sumy2, DLONG *sumxy) |
REGION特徴量:2次モーメント | |
INT FVALGAPI | fnFIE_region_calc_central_moment2 (FHANDLE hreg, DOUBLE *mg20, DOUBLE *mg02, DOUBLE *mg11) |
REGION特徴量:重心2次モーメント | |
INT FVALGAPI | fnFIE_region_calc_moment3 (FHANDLE hreg, DOUBLE *m30, DOUBLE *m03, DOUBLE *m21, DOUBLE *m12) |
REGION特徴量:3次モーメント | |
INT FVALGAPI | fnFIE_region_calc_central_moment3 (FHANDLE hreg, DOUBLE *mg30, DOUBLE *mg03, DOUBLE *mg21, DOUBLE *mg12) |
REGION特徴量:重心3次モーメント | |
INT FVALGAPI | fnFIE_region_calc_moment (FHANDLE hreg, INT xn, INT yn, DOUBLE *m) |
REGION特徴量:N次モーメント | |
INT FVALGAPI | fnFIE_region_calc_central_moment (FHANDLE hreg, INT xn, INT yn, DOUBLE *mg) |
REGION特徴量:重心N次モーメント | |
INT FVALGAPI | fnFIE_region_calc_hu_moments (FHANDLE hreg, DOUBLE *h) |
REGION特徴量:Huモーメント不変量 | |
INT FVALGAPI | fnFIE_region_get_center (FHANDLE hreg, DOUBLE *centerx, DOUBLE *centery) |
REGION特徴量:重心 | |
INT FVALGAPI | fnFIE_region_get_equivalent_ellipse (FHANDLE hreg, DOUBLE *majoraxis, DOUBLE *minoraxis, DOUBLE *theta, DOUBLE *aratio) |
REGION特徴量:等価楕円 | |
INT FVALGAPI | fnFIE_region_calc_equivalent_disk (FHANDLE hreg, DOUBLE *diameter) |
REGION特徴量:面積等価円 | |
INT FVALGAPI | fnFIE_region_get_rect2_size (FHANDLE hreg, DOUBLE *lsize, DOUBLE *wsize) |
REGION特徴量:外接長方形 | |
INT FVALGAPI | fnFIE_region_get_rect2_area (FHANDLE hreg, DOUBLE *area) |
REGION特徴量:外接長方形面積 | |
INT FVALGAPI | fnFIE_region_get_rect2_lratio (FHANDLE hreg, DOUBLE *lratio) |
REGION特徴量:外接長方形縦横比 | |
INT FVALGAPI | fnFIE_region_get_rect2_sratio (FHANDLE hreg, DOUBLE *sratio) |
REGION特徴量:外接長方形面積比 | |
INT FVALGAPI | fnFIE_region_calc_circularity1 (FHANDLE hreg, DOUBLE *circularity) |
REGION特徴量:真円度#1 | |
INT FVALGAPI | fnFIE_region_calc_equivalent_circle (FHANDLE hreg, DOUBLE *diameter) |
REGION特徴量:周囲長等価円 | |
INT FVALGAPI | fnFIE_region_get_distance_to_boundary (FHANDLE hreg, DOUBLE *dpmin, DOUBLE *dpmax, DOUBLE *dpave, DOUBLE *dpsigma) |
REGION特徴量:外周距離 | |
INT FVALGAPI | fnFIE_region_calc_circularity2 (FHANDLE hreg, DOUBLE *circularity) |
REGION特徴量:真円度#2 | |
INT FVALGAPI | fnFIE_region_calc_circularity3 (FHANDLE hreg, DOUBLE *circularity) |
REGION特徴量:真円度#3 | |
INT FVALGAPI | fnFIE_region_calc_convexfeature (FHANDLE hreg, DOUBLE *convex_area, DOUBLE *convex_perim) |
REGION特徴量:凸包面積・周囲長 | |
INT FVALGAPI | fnFIE_region_calc_convexratio (FHANDLE hreg, DOUBLE *convex_arearatio, DOUBLE *convex_perimratio) |
REGION特徴量:凸包面積比・周囲長比 | |
INT FVALGAPI | fnFIE_region_calc_feret_diameter_maxmin (FHANDLE hreg, DOUBLE *feretmax, DOUBLE *fmax_theta, DOUBLE *feretmin, DOUBLE *fmin_theta) |
REGION特徴量:最大フェレ径、最小フェレ径 | |
INT FVALGAPI | fnFIE_region_calc_feret_diameter (FHANDLE hreg, DOUBLE theta, INT mode, DOUBLE *diameter) |
REGION特徴量:指定角度フェレ径計測 | |
INT FVALGAPI | fnFIE_region_calc_convex2d (FHANDLE hreg, PNT_T **ppHull, UINT *verNum) |
REGION特徴量:凸包生成 | |
INT FVALGAPI | fnFIE_region_calc_rect2pos (FHANDLE hreg, DPNT_T *points) |
REGION特徴量:外接長方形の頂点 | |
INT FVALGAPI | fnFIE_region_calc_bounding_rotated_rect_pos (FHANDLE hreg, DOUBLE theta, DPNT_T *points) |
REGION特徴量:指定角度外接長方形の頂点 | |
INT FVALGAPI | fnFIE_region_calc_circumcircle (FHANDLE hreg, DPNT_T *center, DOUBLE *radius) |
REGION特徴量:最小外接円 |
INT FVALGAPI fnFIE_region_set_connection | ( | FHANDLE | hreg, | |
INT | connection | |||
) |
REGIONオブジェクトの連結性設定関数
REGIONオブジェクトの連結性を設定します。 周囲長および外周距離計算時に必要な境界点列を求める際に使われるパラメータです。 連結性が変更された場合は、関連する特徴量のフラグがクリアされます。
[in] | hreg | REGIONハンドル |
[in] | connection | 連結性
|
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータ | |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_boundary | ( | FHANDLE | hreg, | |
PNT_T ** | pnts, | |||
UINT * | pnum | |||
) |
REGION境界点抽出
領域(REGION)の境界点を抽出します。 特徴量の意味は ここ を参照して下さい。 領域の境界にはexternal boundaryとinternal boundaryの2種類ありますが、 本関数ではexternal boundaryのみ抽出します。(下図参照) internal boundaryが必要な場合には fnFIE_region_calc_boundary_ex() を使用してください。
連結モードによって異なる境界点列が取得できます。(下図参照) 連結性の設定は fnFIE_region_set_connection() より行って下さい。
領域の境界を画像座標系で反時計回りに探索(右手の法則)します。 1つの境界点列で始点と終点は必ず同一点となります。
領域が2つ以上ある場合(ラベリングするとラベル数が2以上になるとき)でも、すべての領域について境界点列を生成します。 1つの境界点列が終了すると、座標にI32_MINが格納された点を挿入しています。 また、境界点列が複数ある場合、1 yの昇順、2 xの昇順で境界点列の始点を使ってソートします。
出力用のメモリは関数内で確保されます。 *pnts はNULLにしておいて下さい。 得られた点列( *pnts )は、不要になった後に fnOAL_free() を使用して解放して下さい。
pnum : 22 pnts : (1,1)(1,2)(1,3)(2,3)(3,3)(4,3)(5,3)(4,3)(3,2)(3,1)(2,1)(1,1)(I32_MIN,I32_MIN) (3,5)(2,6)(3,5)(4,6)(5,6)(5,5)(4,5)(3,5)(I32_MIN,I32_MIN)
上図を4連結モードで境界点列を生成したときの結果を以下に示します。
pnum : 25 pnts : (1,1)(1,2)(1,3)(2,3)(3,3)(4,3)(5,3)(4,3)(3,3)(3,2)(3,1)(2,1)(1,1)(I32_MIN,I32_MIN) (3,5)(4,5)(4,6)(5,6)(5,5)(4,5)(3,5)(I32_MIN,I32_MIN)(2,6)(2,6)(I32_MIN,I32_MIN)
// エラー処理は省略しているので注意して下さい。 #include <stdio.h> #include "oal_aloc.h" #include "fie.h" INT main() { FHANDLE hreg=NULL; PNT_T *pnts; UINT i,pnum=0; // リージョン定義用のランレングス配列 F_RUNLENGTH runlengths[] = { { 1, 3, 1 }, { 1, 1, 2 }, { 3, 3, 2 }, { 1, 5, 3 }, { 3, 5, 5 }, { 2, 2, 6 }, { 4, 5, 6 }, }; // FIEライブラリの使用前に必ずコールする必要があります。 fnFIE_setup(); // 適当な領域(hreg)を用意する。ドキュメントの抽出例に対応 hreg = fnFIE_create_region_runlength(runlengths, 7); // pntsをNULLで初期化する pnts=NULL; // 8連結で境界点列を求める例 fnFIE_region_set_connection ( hreg, 8 ); fnFIE_region_calc_boundary( hreg, &pnts, &pnum ); // 結果を表示する printf("pnum : %d\n", pnum); printf("pnts :\n"); for(i=0;i<pnum;i++){ if (pnts[i].x != I32_MIN) { printf("(%d,%d)", pnts[i].x, pnts[i].y); } else { // 1つの境界点列が終了 printf("(I32_MIN,I32_MIN)\n"); } } // pntsのメモリ解放はユーザが行う fnOAL_free( pnts ); // 解放 fnFIE_free_object(hreg); // 終了処理 fnFIE_teardown(); return 0; }
[in] | hreg | REGIONハンドル |
[out] | pnts | 出力点列の先頭ポインタを格納するアドレス 関数エントリー時 *pnts == NULL でなければならない |
[out] | pnum | 出力点列の点の数。 |
F_ERR_NONE | 正常終了 | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_INVALID_PARAM | パラメータ異常
| |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_boundary_ex | ( | FHANDLE | hreg, | |
PNT_T ** | ext_pnts, | |||
UINT * | ext_pnum, | |||
PNT_T ** | int_pnts, | |||
UINT * | int_pnum | |||
) |
REGION境界点抽出(拡張版)
領域(REGION)の境界点を抽出します。 特徴量の意味は ここ を参照して下さい。 領域の境界にはexternal boundaryとinternal boundaryの2種類ありますが、 本関数ではその両方が取得できる fnFIE_region_calc_boundary() の拡張版です。(下図参照) external boundaryのみが取得できればいい場合は fnFIE_region_calc_boundary() をお使いください。
連結モードによって異なる境界点列が取得できます。(下図参照) 連結性の設定は fnFIE_region_set_connection() より行って下さい。
領域の境界を画像座標系で反時計回りに探索(右手の法則)します。 1つの境界点列で始点と終点は必ず同一点となります。
領域が2つ以上ある場合(ラベリングするとラベル数が2以上になるとき)でも、すべての領域について境界点列を生成します。 1つの境界点列が終了すると、座標にI32_MINが格納された点を挿入しています。 また、境界点列が複数ある場合、1:yの昇順、2:xの昇順 で境界点列の始点を使ってソートします。
出力用のメモリは関数内で確保されます。 *ext_pnts, *int_pnts はNULLにしておいて下さい。 得られた点列( *ext_pnts, *int_pnts )は、不要になった後に fnOAL_free() を使用して解放して下さい。
ext_pnum : 28 ext_pnts : (0,1),(0,2),(0,3),(0,4),(1,4),(2,4),(3,4),(4,4),(5,4),(6,4), (6,3),(6,2),(6,1),(5,1),(4,1),(3,1),(2,1),(1,1),(0,1),(I32_MIN,I32_MIN) (3,6),(2,7),(3,6),(4,6),(5,6),(4,6),(3,6),(I32_MIN,I32_MIN)
int_pnum : 19 int_pnts : (0,2),(1,1),(2,1),(3,2),(3,3),(2,4),(1,4),(0,3),(0,2),(I32_MIN,I32_MIN) (3,2),(4,1),(5,2),(6,3),(5,4),(4,4),(3,3),(3,2),(I32_MIN,I32_MIN)
上図を4連結モードで境界点列を生成したときの結果を以下に示します。
ext_pnum : 29 ext_pnts : (0,1),(0,2),(0,3),(0,4),(1,4),(2,4),(3,4),(4,4),(5,4),(6,4),(6,3), (6,2),(6,1),(5,1),(4,1),(3,1),(2,1),(1,1),(0,1),(I32_MIN,I32_MIN) (3,6),(4,6),(5,6),(4,6),(3,6),(I32_MIN,I32_MIN) (2,7),(2,7),(I32_MIN,I32_MIN)
int_pnum : 28 int_pnts : (0,2),(0,1),(1,1),(2,1),(3,1),(3,2),(3,3),(3,4),(2,4),(1,4),(0,4),(0,3),(0,2),(I32_MIN,I32_MIN) (3,2),(3,1),(4,1),(5,1),(5,2),(6,2),(6,3),(6,4),(5,4),(4,4),(3,4),(3,3),(3,2),(I32_MIN,I32_MIN)
[in] | hreg | REGIONハンドル |
[out] | ext_pnts | external boundary の出力点列の先頭ポインタを格納するアドレス 不要な場合は ext_pnts に NULL を渡す。 ext_pnts != NULL の場合、 関数エントリー時 *ext_pnts == NULL でなければなりません |
[out] | ext_pnum | ext_pnts に出力された点の数 ext_pnts == NULL の場合、このパラメータは参照されません |
[out] | int_pnts | 出力点列の先頭ポインタを格納するアドレス 不要な場合は int_pnts に NULL を渡す。 int_pnts != NULL の場合、 関数エントリー時 *int_pnts == NULL でなければなりません |
[out] | int_pnum | int_pnts に出力された点の数 int_pnts == NULL の場合、このパラメータは参照されません |
F_ERR_NONE | 正常終了 | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_INVALID_PARAM | パラメータ異常
| |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_perimeter | ( | FHANDLE | hreg, | |
DOUBLE * | perimeter | |||
) |
REGION特徴量:周囲長計測
REGIONの周囲長を計測します。 REGIONの境界点列のユークリッド距離を周囲長と定義します。 連結性は fnFIE_region_set_connection() で指定した値を使用します。 (指定した連結性で境界点列抽出を行い、境界点列から周囲長を求めます。)
[in] | hreg | REGIONハンドル |
[out] | perimeter | 周囲長 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_area | ( | FHANDLE | hreg, | |
UINT * | area | |||
) |
REGION特徴量:面積
REGIONの面積を計算します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | area | 面積 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_xyrange | ( | FHANDLE | hreg, | |
INT * | xmin, | |||
INT * | xmax, | |||
INT * | ymin, | |||
INT * | ymax | |||
) |
REGION特徴量:座標の最大最小値
REGIONのX,Y座標の最大値と最小値をそれぞれ求めます。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | xmin | X座標最小値 |
[out] | xmax | X座標最大値 |
[out] | ymin | Y座標最小値 |
[out] | ymax | Y座標最大値 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_maxminpos | ( | FHANDLE | hreg, | |
INT * | xmin_at_ymin, | |||
INT * | xmax_at_ymax, | |||
INT * | ymin_at_xmax, | |||
INT * | ymax_at_xmin | |||
) |
REGION特徴量:座標の最大最小位置
REGIONのX,Y座標の最大最小位置を求めます。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | xmin_at_ymin | Yの最小位置におけるXの最小値 |
[out] | xmax_at_ymax | Yの最大位置におけるXの最大値 |
[out] | ymin_at_xmax | Xの最大位置におけるYの最小値 |
[out] | ymax_at_xmin | Xの最小位置におけるYの最大値 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_xydiff | ( | FHANDLE | hreg, | |
INT * | xdiff, | |||
INT * | ydiff | |||
) |
REGION特徴量:外接矩形サイズ取得(xdiff、ydiff)
REGIONの外接矩形の横サイズ( xdiff )と縦サイズ( ydiff )を取得します。 特徴量の意味は ここ を参照してください。
[in] | hreg | REGIONハンドル |
[out] | xdiff | 外接矩形横サイズ |
[out] | ydiff | 外接矩形縦サイズ |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_rect1_area | ( | FHANDLE | hreg, | |
UINT * | area | |||
) |
REGION特徴量:外接矩形面積
REGIONの外接矩形の面積を取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | area | 外接矩形面積 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_rect1_lratio | ( | FHANDLE | hreg, | |
DOUBLE * | lratio | |||
) |
REGION特徴量:外接矩形縦横比
REGIONの外接矩形の縦横比を取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | lratio | 外接矩形縦横比 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_rect1_sratio | ( | FHANDLE | hreg, | |
DOUBLE * | sratio | |||
) |
REGION特徴量:外接矩形面積比
REGIONの外接矩形の面積比を取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | sratio | 外接矩形面積比 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_moment1 | ( | FHANDLE | hreg, | |
DLONG * | sumx, | |||
DLONG * | sumy | |||
) |
REGION特徴量:1次モーメント
REGIONの1次モーメントを取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | sumx | X方向1次モーメント |
[out] | sumy | Y方向1次モーメント |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_moment2 | ( | FHANDLE | hreg, | |
UDLONG * | sumx2, | |||
UDLONG * | sumy2, | |||
DLONG * | sumxy | |||
) |
REGION特徴量:2次モーメント
REGIONの2次モーメントを取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | sumx2 | X方向2次モーメント |
[out] | sumy2 | Y方向2次モーメント |
[out] | sumxy | XY方向2次モーメント |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_central_moment2 | ( | FHANDLE | hreg, | |
DOUBLE * | mg20, | |||
DOUBLE * | mg02, | |||
DOUBLE * | mg11 | |||
) |
REGION特徴量:重心2次モーメント
REGIONの2次モーメントを取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | mg20 | X方向重心2次モーメント |
[out] | mg02 | Y方向重心2次モーメント |
[out] | mg11 | XY方向重心2次モーメント |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_moment3 | ( | FHANDLE | hreg, | |
DOUBLE * | m30, | |||
DOUBLE * | m03, | |||
DOUBLE * | m21, | |||
DOUBLE * | m12 | |||
) |
REGION特徴量:3次モーメント
REGIONの3次モーメントを取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | m30 | ![]() |
[out] | m03 | ![]() |
[out] | m21 | ![]() |
[out] | m12 | ![]() |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_central_moment3 | ( | FHANDLE | hreg, | |
DOUBLE * | mg30, | |||
DOUBLE * | mg03, | |||
DOUBLE * | mg21, | |||
DOUBLE * | mg12 | |||
) |
REGION特徴量:重心3次モーメント
REGIONの3次モーメントを取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | mg30 | ![]() |
[out] | mg03 | ![]() |
[out] | mg21 | ![]() |
[out] | mg12 | ![]() |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_moment | ( | FHANDLE | hreg, | |
INT | xn, | |||
INT | yn, | |||
DOUBLE * | m | |||
) |
REGION特徴量:N次モーメント
REGIONのN次モーメントを取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[in] | xn | x次数(0以上) |
[in] | yn | y次数(0以上) |
[out] | m | モーメント ![]() |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_central_moment | ( | FHANDLE | hreg, | |
INT | xn, | |||
INT | yn, | |||
DOUBLE * | mg | |||
) |
REGION特徴量:重心N次モーメント
REGIONのN次モーメントを取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[in] | xn | x次数(0以上) |
[in] | yn | y次数(0以上) |
[out] | mg | 重心モーメント ![]() |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_hu_moments | ( | FHANDLE | hreg, | |
DOUBLE * | h | |||
) |
REGION特徴量:Huモーメント不変量
REGIONの7つのHuモーメント不変量を取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | h | Huモーメント不変量の出力先配列。サイズは7 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_center | ( | FHANDLE | hreg, | |
DOUBLE * | centerx, | |||
DOUBLE * | centery | |||
) |
REGION特徴量:重心
REGIONの重心を取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | centerx | 重心のX座標 |
[out] | centery | 重心のY座標 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_equivalent_ellipse | ( | FHANDLE | hreg, | |
DOUBLE * | majoraxis, | |||
DOUBLE * | minoraxis, | |||
DOUBLE * | theta, | |||
DOUBLE * | aratio | |||
) |
REGION特徴量:等価楕円
REGIONの面積と等価な楕円の主軸半径・副軸半径・傾き・主軸副軸長比を取得します。
特徴量の意味は ここ を参照してください。
[in] | hreg | REGIONハンドル |
[out] | majoraxis | 主軸半径 |
[out] | minoraxis | 副軸半径 |
[out] | theta | 傾き(主軸とX軸がなす角度)単位:ラジアン ( -π/2 <= theta <= π/2 ) |
[out] | aratio | 主軸副軸長比 : 副軸長/主軸長 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_equivalent_disk | ( | FHANDLE | hreg, | |
DOUBLE * | diameter | |||
) |
REGION特徴量:面積等価円
REGIONの面積と等価な円の直径を取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | diameter | 面積等価円直径 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_rect2_size | ( | FHANDLE | hreg, | |
DOUBLE * | lsize, | |||
DOUBLE * | wsize | |||
) |
REGION特徴量:外接長方形
領域に外接する長方形のサイズを取得します。 特徴量の意味は ここ を参照して下さい。 領域内の点(x,y)は(x-0.5,y-0.5),(x+0.5,y-0.5),(x-0.5,y+0.5),(x+0.5,y+0.5)で囲まれる 矩形分の広がりを持っているという定義で外接長方形を求めています。( fnFIE_region_calc_feret_diameter() 参照 )
[in] | hreg | REGIONハンドル |
[out] | lsize | 外接長方形横長 |
[out] | wsize | 外接長方形縦長 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_rect2_area | ( | FHANDLE | hreg, | |
DOUBLE * | area | |||
) |
REGION特徴量:外接長方形面積
REGIONの外接長方形の面積を取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | area | 外接長方形面積 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_rect2_lratio | ( | FHANDLE | hreg, | |
DOUBLE * | lratio | |||
) |
REGION特徴量:外接長方形縦横比
REGIONの外接長方形の縦横比を取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | lratio | 外接長方形縦横比 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_rect2_sratio | ( | FHANDLE | hreg, | |
DOUBLE * | sratio | |||
) |
REGION特徴量:外接長方形面積比
REGIONの外接長方形の面積比を取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | sratio | 外接長方形縦横比 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_circularity1 | ( | FHANDLE | hreg, | |
DOUBLE * | circularity | |||
) |
REGION特徴量:真円度#1
REGIONの真円度#1を取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | circularity | 真円度#1 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_equivalent_circle | ( | FHANDLE | hreg, | |
DOUBLE * | diameter | |||
) |
REGION特徴量:周囲長等価円
REGIONの周囲長と等価な円の直径を取得します。 周囲長が0の場合に直径が0となります。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | diameter | 周囲長等価円直径 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_get_distance_to_boundary | ( | FHANDLE | hreg, | |
DOUBLE * | dpmin, | |||
DOUBLE * | dpmax, | |||
DOUBLE * | dpave, | |||
DOUBLE * | dpsigma | |||
) |
REGION特徴量:外周距離
REGIONの重心と境界点列の距離最小値、距離最大値、距離平均値、距離標準偏差値を取得します。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | dpmin | 外周距離最小値 |
[out] | dpmax | 外周距離最大値 |
[out] | dpave | 外周距離平均値 |
[out] | dpsigma | 外周距離標準偏差値 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_circularity2 | ( | FHANDLE | hreg, | |
DOUBLE * | circularity | |||
) |
REGION特徴量:真円度#2
REGIONの真円度#2を求めます。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | circularity | 真円度#2 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_circularity3 | ( | FHANDLE | hreg, | |
DOUBLE * | circularity | |||
) |
REGION特徴量:真円度#3
REGIONの真円度#3求めます。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | circularity | 真円度#3 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_convexfeature | ( | FHANDLE | hreg, | |
DOUBLE * | convex_area, | |||
DOUBLE * | convex_perim | |||
) |
REGION特徴量:凸包面積・周囲長
凸包の面積と周囲長を求めます。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | convex_area | 凸包面積 |
[out] | convex_perim | 凸包周囲長 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_convexratio | ( | FHANDLE | hreg, | |
DOUBLE * | convex_arearatio, | |||
DOUBLE * | convex_perimratio | |||
) |
REGION特徴量:凸包面積比・周囲長比
凸包の面積比:(領域の面積/凸包面積)、凸包の周囲長比:(領域の周囲長/凸包周囲長)を取得します。 特徴量の意味は ここ を参照してください。
[in] | hreg | REGIONハンドル |
[out] | convex_arearatio | 凸包面積比 |
[out] | convex_perimratio | 凸包周囲長比 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_feret_diameter_maxmin | ( | FHANDLE | hreg, | |
DOUBLE * | feretmax, | |||
DOUBLE * | fmax_theta, | |||
DOUBLE * | feretmin, | |||
DOUBLE * | fmin_theta | |||
) |
REGION特徴量:最大フェレ径、最小フェレ径
領域の最大フェレ径と最小フェレ径を取得します。 特徴量の意味は ここ を参照して下さい。
角度は-π/2≦θ<π/2の範囲で得られます。 フェレ径が最大、または最小となる角度は複数ある可能性がありますが、そのうちのどの角度が得られるかは特に定義しません。 領域が1点の時は、最大フェレ径、最小フェレ径、最大フェレ径角度、最小フェレ径角度はすべて0.0となります。 領域が直線状になる場合(面積が2以上で凸包が求まらない場合)の最小フェレ径の値は0.0となります。
本関数では、点が広がりを持たない場合のフェレ径の最大・最小値を計算しています。点が広がりを持つ場合も計算可能ですが、処理を 高速に行なうことを優先して、そのような仕様としています。点の広がりについては ここ を参照してください。
本関数の角度範囲はFVALG ver1.7 より -π/2≦θ<π/2 に変更されました。
[in] | hreg | REGIONハンドル |
[out] | feretmax | 最大フェレ径 |
[out] | fmax_theta | 最大フェレ径の角度 |
[out] | feretmin | 最小フェレ径 |
[out] | fmin_theta | 最小フェレ径の角度 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_feret_diameter | ( | FHANDLE | hreg, | |
DOUBLE | theta, | |||
INT | mode, | |||
DOUBLE * | diameter | |||
) |
REGION特徴量:指定角度フェレ径計測
指定された角度でREGIONのフェレ径を計測します。 特徴量の意味は ここ を参照して下さい。
mode は、1画素の広がりを考慮するかしないかのモード選択です。 mode が0の時、座標点は広がりを持たないものとして計測します。1点のみの領域はどの角度で計測してもフェレ径の値は0となります。 mode が1の時、領域内の1点は幅1の正方矩形領域であるという定義の下に幅計測します。 詳しい説明は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[in] | theta | フェレ径を計測するときの角度(フェレ径計測軸とx軸がなす角度)単位:ラジアン |
[in] | mode | 画素領域モード
|
[out] | diameter | フェレ径 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_convex2d | ( | FHANDLE | hreg, | |
PNT_T ** | ppHull, | |||
UINT * | verNum | |||
) |
REGION特徴量:凸包生成
REGIONに外接する凸包を生成します。 特徴量の意味は ここ を参照して下さい。
出力される凸包の頂点は、画像座標系で時計回りに連結します。 最初と最後の頂点は同じ点で出力するため、出力される凸包の頂点数は実の頂点数プラス1になります。 凸包保存用点配列のメモリは関数内部で確保するため、引数の *ppHull はNULLにして下さい。 (メモリ解放はユーザー側で fnOAL_free() を使用して行ってください。)
[in] | hreg | REGIONハンドル |
[out] | ppHull | 出力される凸包の頂点列( *ppHull は必ずNULLでなければならない) |
[out] | verNum | 出力される凸包の頂点の個数 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_rect2pos | ( | FHANDLE | hreg, | |
DPNT_T * | points | |||
) |
REGION特徴量:外接長方形の頂点
REGIONの外接長方形の頂点を取得します。 特徴量の意味は ここ を参照して下さい。
point には0度のときに画像座標系で左上となる点を始点に、 時計回りに頂点座標を書き込みます。
[in] | hreg | REGIONハンドル |
[out] | points | 外接長方形の4頂点の点列。サイズ4 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_bounding_rotated_rect_pos | ( | FHANDLE | hreg, | |
DOUBLE | theta, | |||
DPNT_T * | points | |||
) |
REGION特徴量:指定角度外接長方形の頂点
REGIONの指定した傾きをもった外接長方形の頂点を取得します。 特徴量の意味は 外接長方形の頂点座標(指定角) を参照して下さい。
points には0度のときに画像座標系で左上となる点を始点に、 時計回りに頂点座標を書き込みます。
[in] | hreg | REGIONハンドル |
[in] | theta | 外接長方形の角度(外接長方形のある一辺とx軸がなす角度)単位:ラジアン |
[out] | points | 外接長方形の4頂点の点列。サイズ4 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_region_calc_circumcircle | ( | FHANDLE | hreg, | |
DPNT_T * | center, | |||
DOUBLE * | radius | |||
) |
REGION特徴量:最小外接円
REGIONの最小外接円を取得します(最小外接円は最小包含円とも呼ばれます)。 特徴量の意味は ここ を参照して下さい。
[in] | hreg | REGIONハンドル |
[out] | center | 最小外接円の中心 |
[out] | radius | 最小外接円の半径 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された
| |
F_ERR_INVALID_OBJECT | 不正なハンドル | |
F_ERR_CALC_IMPOSSIBLE | 計算不能 | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |