#define F_FEATUREFLAG_XYRANGE 0x0000000000000001 |
特徴量グループ指定フラグ:座標範囲(xmin, ymin, xmax, ymax, xmin_at_ymin, xmax_at_ymax, ymin_at_xmax, ymax_at_xmin)
#define F_FEATUREFLAG_AREA 0x0000000000000002 |
特徴量グループ指定フラグ:面積(area)
#define F_FEATUREFLAG_PERIMETER 0x0000000000000004 |
特徴量グループ指定フラグ:周囲長
#define F_FEATUREFLAG_MOMENT1 0x0000000000000008 |
特徴量グループ指定フラグ:1次モーメント(sumx, sumy)
#define F_FEATUREFLAG_MOMENT2 0x0000000000000010 |
特徴量グループ指定フラグ:2次モーメント(sumx2, sumy2, sumxy)
#define F_FEATUREFLAG_CENTERG 0x0000000000000020 |
特徴量グループ指定フラグ:重心(centerx, centery)
#define F_FEATUREFLAG_RECT1AREA 0x0000000000000080 |
特徴量グループ指定フラグ:外接矩形面積(rect1_area)
#define F_FEATUREFLAG_RECT1LRATIO 0x0000000000000100 |
特徴量グループ指定フラグ:外接矩形縦横比(rect1_lratio)
#define F_FEATUREFLAG_RECT1SRATIO 0x0000000000000200 |
特徴量グループ指定フラグ:外接矩形面積比(rect1_sratio)
#define F_FEATUREFLAG_RECT2SIZE 0x0000000000000400 |
特徴量グループ指定フラグ:外接長方形縦横(lsize, wsize)
#define F_FEATUREFLAG_RECT2AREA 0x0000000000000800 |
特徴量グループ指定フラグ:外接長方形面積(rect2_area)
#define F_FEATUREFLAG_RECT2LRATIO 0x0000000000001000 |
特徴量グループ指定フラグ:外接長方形縦横比(rect2_lratio)
#define F_FEATUREFLAG_RECT2SRATIO 0x0000000000002000 |
特徴量グループ指定フラグ:外接長方形面積比(rect2_sratio)
#define F_FEATUREFLAG_EQUIELLIPSE 0x0000000000004000 |
特徴量グループ指定フラグ:慣性等価楕円関連(majoraxis, minoraxis, axistheta, axisratio)
#define F_FEATUREFLAG_DISTANCEP 0x0000000000008000 |
特徴量グループ指定フラグ:外周距離最大最小平均標準偏差
#define F_FEATUREFLAG_HOLENUM 0x0000000000010000 |
特徴量グループ指定フラグ:穴の数
#define F_FEATUREFLAG_HOLEAREA 0x0000000000020000 |
特徴量グループ指定フラグ:穴面積
#define F_FEATUREFLAG_HOLERATIO 0x0000000000040000 |
特徴量グループ指定フラグ:穴面積比
ブローブ解析:配置順指定
fnFIE_measure_specialsort_list() における配置順指定のための定数
ブローブ解析:フィルタ種別指定
fnFIE_measure_sort_list() にて、ソート対象とする特徴量、または F_MEASURE_FILTER_RANGE にてフィルタ対象とする特徴量 を指定するための定数
F_FEATURE_NONE | ソート対象無し |
F_FEATURE_COLOR | ブローブ色 |
F_FEATURE_XMIN | xmin |
F_FEATURE_YMIN | xmax |
F_FEATURE_XMAX | ymin |
F_FEATURE_YMAX | ymax |
F_FEATURE_XMIN_AT_YMIN | xmin_at_ymin |
F_FEATURE_XMAX_AT_YMAX | xmax_at_ymax |
F_FEATURE_YMIN_AT_XMAX | ymin_at_xmax |
F_FEATURE_YMAX_AT_XMIN | ymax_at_xmin |
F_FEATURE_XDIFF | xdiff |
F_FEATURE_YDIFF | ydiff |
F_FEATURE_SUMX | sumx |
F_FEATURE_SUMY | sumy |
F_FEATURE_SUMX2 | sumx2 |
F_FEATURE_SUMY2 | sumy2 |
F_FEATURE_SUMXY | sumxy |
F_FEATURE_AREA | area |
F_FEATURE_CENTERX | centerx |
F_FEATURE_CENTERY | centery |
F_FEATURE_RECT1AREA | rect1_area |
F_FEATURE_RECT1LRATIO | rect1_lratio |
F_FEATURE_RECT1SRATIO | rect1_sratio |
F_FEATURE_LSIZE | lsize |
F_FEATURE_WSIZE | wsize |
F_FEATURE_RECT2AREA | rect2_area |
F_FEATURE_RECT2LRATIO | rect2_lratio |
F_FEATURE_RECT2SRATIO | rect2_sratio |
F_FEATURE_MAJORAXIS | majoraxis |
F_FEATURE_MINORAXIS | minoraxis |
F_FEATURE_AXISTHETA | axistheta |
F_FEATURE_AXISRATIO | axisratio |
F_FEATURE_DIAMETER_EQUIDISK | diameter_equidisk |
F_FEATURE_DIAMETER_EQUICIRCLE | diameter_equicircle |
F_FEATURE_CIRCULARITY1 | circularity1 |
F_FEATURE_CIRCULARITY2 | circularity2 |
F_FEATURE_CIRCULARITY3 | circularity3 |
F_FEATURE_CONVEX_AREA | convex_area |
F_FEATURE_CONVEX_PERIM | convex_perim |
F_FEATURE_CONVEX_AREARATIO | convex_arearatio |
F_FEATURE_CONVEX_PERIMRATIO | convex_perimratio |
F_FEATURE_FERET_MAX | feretmax |
F_FEATURE_FERET_MIN | feretmin |
F_FEATURE_FMAX_THETA | fmax_theta |
F_FEATURE_FMIN_THETA | fmin_theta |
F_FEATURE_DPMIN | dpmin |
F_FEATURE_DPMAX | dpmax |
F_FEATURE_DPAVE | dpave |
F_FEATURE_DPSIGMA | dpsigma |
F_FEATURE_DCMAX | dcmax |
F_FEATURE_DCMIN | dcmin |
F_FEATURE_DCAVE | dcave |
F_FEATURE_DSMAX | dsmax |
F_FEATURE_DSMIN | dsmin |
F_FEATURE_DSAVE | dsave |
F_FEATURE_NS | ns |
F_FEATURE_PERIM | perimeter |
F_FEATURE_ST | st |
F_FEATURE_SC | sc |
F_FEATURE_HOLES | holes |
F_FEATURE_HRATIO | hratio |
F_FEATURE_PPS | pps |
F_FEATURE_AXISTHETA_CYCLIC | axistheta の巡回判定版 |
F_FEATURE_FMAX_THETA_CYCLIC | fmax_theta の巡回判定版 |
F_FEATURE_FMIN_THETA_CYCLIC | fmin_theta の巡回判定版 |
F_FEATURE_M10 | モーメント M10 == F_MEATURE_SUMX |
F_FEATURE_M01 | モーメント M01 == F_MEATURE_SUMY |
F_FEATURE_M20 | モーメント M20 == F_MEATURE_SUMX2 |
F_FEATURE_M02 | モーメント M02 == F_MEATURE_SUMY2 |
F_FEATURE_M11 | モーメント M11 == F_MEATURE_SUMXY |
F_FEATURE_M30 | モーメント M30 |
F_FEATURE_M03 | モーメント M03 |
F_FEATURE_M21 | モーメント M21 |
F_FEATURE_M12 | モーメント M12 |
F_FEATURE_MG20 | 重心モーメント MG20 |
F_FEATURE_MG02 | 重心モーメント MG02 |
F_FEATURE_MG11 | 重心モーメント MG11 |
F_FEATURE_MG30 | 重心モーメント MG30 |
F_FEATURE_MG03 | 重心モーメント MG03 |
F_FEATURE_MG21 | 重心モーメント MG21 |
F_FEATURE_MG12 | 重心モーメント MG12 |
F_FEATURE_HU_MOMENT0 | Huモーメント不変量0 |
F_FEATURE_HU_MOMENT1 | Huモーメント不変量1 |
F_FEATURE_HU_MOMENT2 | Huモーメント不変量2 |
F_FEATURE_HU_MOMENT3 | Huモーメント不変量3 |
F_FEATURE_HU_MOMENT4 | Huモーメント不変量4 |
F_FEATURE_HU_MOMENT5 | Huモーメント不変量5 |
F_FEATURE_HU_MOMENT6 | Huモーメント不変量6 |
INT FVALGAPI fnFIE_measure_get_list | ( | FHANDLE | hresult, | |
F_MEASURE_FILTER_RANGE * | filters, | |||
UINT | filter_num, | |||
UINT ** | blob_numbers, | |||
UINT * | num | |||
) |
ブローブ番号配列の取得
指定の特徴量範囲にマッチするブローブのブローブ番号を配列で返します。 なお、背景ブローブ及び無効ブローブの番号は出力ブローブ番号配列には含まれません。 また、フィルタが2種以上指定されているとき( filter_num > 1 )は、 全ての条件のANDでの評価となります。
返される配列は内部で fnOAL_malloc() を使用してメモリを確保し、そのポインタを *blob_numbers にて返します。 関数へのエントリー時、パラメータ blob_numbers の値 *blob_numbers はNULLでなければいけません。 *blob_numbers に返された配列は利用後 fnOAL_free() にてメモリを解放してください。
[in] | hresult | ブローブ解析結果ハンドル |
[in] | filters | 取得条件フィルタ配列 filter_num == 0 の場合は NULL を指定できます。 |
[in] | filter_num | filters の配列サイズ(単位:要素数, filter_num > 0) |
[out] | blob_numbers | ブローブ番号配列 (*blob_numbers=NULL) |
[out] | num | blob_numbers の配列サイズ(単位:要素数) |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | hresult パラメータに指定されたブローブ解析結果ハンドルが不正 | |
F_ERR_NOMEMORY | メモリ不足エラー | |
F_ERR_INVALID_PARAM | パラメータ不正 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
// エラー処理は省略しているので注意して下さい。 #include <stdio.h> #include "oal_aloc.h" #include "fie.h" INT main() { FHANDLE himg=NULL; FHANDLE measure_result; F_MEASURE_PARAMS param; PNT_T orgin; INT exerr; UINT *bloblist=NULL, blobnum, i; F_MEASURE_FILTER_RANGE filters[2]; // FIEライブラリの使用前に必ずコールする必要があります。 fnFIE_setup(); // 適当な2値画像を用意する - 画像ファイル名は適宜変更すること fnFIE_load_bmp( "test.bmp", &himg, F_COLOR_IMG_TYPE_UC8 ); // 座標原点の指定 orgin.x = 0; orgin.y = 0; // パラメータ設定 memset( ¶m, 0, sizeof(F_MEASURE_PARAMS) ); param.color_mode = F_MEASURE_WHITEFG_BLACKBG; param.neighborhood = 8; // メジャー実行 measure_result = fnFIE_measure_execute( himg, orgin, ¶m, &exerr ); // 面積が 10〜1000 で、且つ xdiffが 2〜10 のブローブのブローブ番号リストを取得。 filters[0].type = F_FEATURE_AREA; filters[0].min = 10; filters[0].max = 1000; filters[1].type = F_FEATURE_XDIFF; filters[1].min = 2; filters[1].max = 10; fnFIE_measure_get_list( measure_result, filters, 2, &bloblist, &blobnum ); // 得られたブローブ番号列を表示 printf( "FILTER1: " ); for( i=0; i<blobnum; i++ ) printf( "%d, ", bloblist[i] ); printf( "\n" ); // さらに ydiff が 2〜10 のブローブを取り出す。 filters[0].type = F_FEATURE_YDIFF; filters[0].min = 2; filters[0].max = 10; fnFIE_measure_refilter_list( measure_result, filters, 1, bloblist, &blobnum ); // 得られたブローブ番号列を表示 printf( "FILTER2: " ); for( i=0; i<blobnum; i++ ) printf( "%d, ", bloblist[i] ); printf( "\n" ); // ブローブ番号配列は使い終わったらユーザー側で解放しなければならない。 // 解放には必ず fnOAL_free を使うこと。 fnOAL_free( bloblist ); fnFIE_free_object( measure_result ); // 終了処理 fnFIE_teardown(); return 0; }
INT FVALGAPI fnFIE_measure_refilter_list | ( | FHANDLE | hresult, | |
F_MEASURE_FILTER_RANGE * | filters, | |||
UINT | filter_num, | |||
UINT * | blob_numbers, | |||
UINT * | num | |||
) |
ブローブ番号配列の特徴量に基づくフィルタリング
blob_numbers に渡されたブローブ番号配列から、 filters にて指定される 特徴量範囲にマッチしないブローブのブローブ番号を取り除きます。 なお、背景ブローブ及び無効ブローブの番号は出力ブローブ番号配列には含まれません。 また、フィルタが2種以上指定されているとき( filter_num > 1 )は、 全ての条件のANDでの評価となります。
フィルタ後の配列は前方に詰められ、残りの部分は不定領域になります。
Fig. 処理説明(num=15の時の例)
[in] | hresult | ブローブ解析結果ハンドル |
[in] | filters | 取得条件フィルタ配列 filter_num == 0 の場合は NULLを指定できます。 |
[in] | filter_num | filters の配列サイズ(単位:要素数, filter_num > 0) |
[in,out] | blob_numbers | ブローブ番号配列 |
[in,out] | num | blob_numbers の配列サイズ(単位:要素数) |
F_ERR_NONE | 正常終了 | |
F_ERR_NOMEMORY | メモリ不足エラー | |
F_ERR_INVALID_OBJECT | hresult パラメータに指定されたブローブ解析結果ハンドルが不正 | |
F_ERR_INVALID_PARAM | パラメータ不正 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_measure_sort_list | ( | FHANDLE | hresult, | |
enum f_measure_feature_type | key1st, | |||
INT | direc1st, | |||
enum f_measure_feature_type | key2nd, | |||
INT | direc2nd, | |||
enum f_measure_feature_type | key3rd, | |||
INT | direc3rd, | |||
UINT * | numbers, | |||
UINT | num | |||
) |
ブローブの特徴量に基づくソーティング
numbers パラメータにて渡されたブローブ番号の配列を、 それぞれのブローブの指定特徴量に従ってソートします。
ソートキーには下記の値のうち、何れかを指定します。 下記にリストされていない値を指定した場合は、F_FEATURE_NONE が指定された場合と同じになります。
F_FEATURE_NONE
0 (ソートしない)F_FEATURE_COLOR
ブローブ色F_FEATURE_XMIN
xminF_FEATURE_XMAX
xmaxF_FEATURE_YMIN
yminF_FEATURE_YMAX
ymaxF_FEATURE_XMIN_AT_YMIN
xmin_at_yminF_FEATURE_XMAX_AT_YMAX
xmax_at_ymaxF_FEATURE_YMIN_AT_XMAX
ymin_at_xmaxF_FEATURE_YMAX_AT_XMIN
ymax_at_xminF_FEATURE_XDIFF
xdiffF_FEATURE_YDIFF
ydiffF_FEATURE_SUMX
sumxF_FEATURE_M10
F_FEATURE_SUMX のシノニムF_FEATURE_SUMY
sumyF_FEATURE_M01
F_FEATURE_SUMY のシノニムF_FEATURE_SUMX2
sumx2F_FEATURE_M20
F_FEATURE_SUMX2 のシノニムF_FEATURE_SUMY2
sumy2F_FEATURE_M02
F_FEATURE_SUMY2 のシノニムF_FEATURE_SUMXY
sumxyF_FEATURE_M11
F_FEATURE_SUMXY のシノニムF_FEATURE_M30
M30F_FEATURE_M03
M03F_FEATURE_M21
M21F_FEATURE_M12
M12F_FEATURE_MG20
重心モーメント MG20F_FEATURE_MG02
重心モーメント MG02F_FEATURE_MG11
重心モーメント MG11F_FEATURE_MG30
重心モーメント MG30F_FEATURE_MG03
重心モーメント MG03F_FEATURE_MG21
重心モーメント MG21F_FEATURE_MG12
重心モーメント MG12F_FEATURE_HU_MOMENT0
Huモーメント不変量0F_FEATURE_HU_MOMENT1
Huモーメント不変量1F_FEATURE_HU_MOMENT2
Huモーメント不変量2F_FEATURE_HU_MOMENT3
Huモーメント不変量3F_FEATURE_HU_MOMENT4
Huモーメント不変量4F_FEATURE_HU_MOMENT5
Huモーメント不変量5F_FEATURE_HU_MOMENT6
Huモーメント不変量6F_FEATURE_AREA
areaF_FEATURE_CENTERX
centerxF_FEATURE_CENTERY
centeryF_FEATURE_RECT1AREA
rect1_areaF_FEATURE_RECT1LRATIO
rect1_lratioF_FEATURE_RECT1SRATIO
rect1_sratioF_FEATURE_LSIZE
lsizeF_FEATURE_WSIZE
wsizeF_FEATURE_RECT2AREA
rect2_areaF_FEATURE_RECT2LRATIO
rect2_lratioF_FEATURE_RECT2SRATIO
rect2_sratioF_FEATURE_MAJORAXIS
majoraxisF_FEATURE_MINORAXIS
minoraxisF_FEATURE_AXISTHETA
axisthetaF_FEATURE_AXISTHETA_CYCLIC
F_FEATURE_AXISTHETA が指定された場合と同じ動作をしますF_FEATURE_AXISRATIO
axisratioF_FEATURE_DPMIN
dpminF_FEATURE_DPMAX
dpmaxF_FEATURE_DPAVE
dpaveF_FEATURE_DPSIGMA
dpsigmaF_FEATURE_ST
stF_FEATURE_SC
scF_FEATURE_HOLES
holesF_FEATURE_HRATIO
hratioF_FEATURE_PERIM
perimF_FEATURE_DIAMETER_EQUIDISK
diameter_equidiskF_FEATURE_DIAMETER_EQUICIRCLE
diameter_equicircleF_FEATURE_CIRCULARITY1
circularity1F_FEATURE_CIRCULARITY2
circularity2F_FEATURE_CIRCULARITY3
circularity3F_FEATURE_CONVEX_AREA
convex_areaF_FEATURE_CONVEX_PERIM
convex_perimF_FEATURE_CONVEX_AREARATIO
convex_arearatioF_FEATURE_CONVEX_PERIMRATIO
convex_perimratioF_FEATURE_FERET_MAX
feretmaxF_FEATURE_FERET_MIN
feretminF_FEATURE_FMAX_THETA
fmax_thetaF_FEATURE_FMAX_THETA_CYCLIC
F_FEATURE_FMAX_THETA が指定された場合と同じ動作をしますF_FEATURE_FMIN_THETA
fmin_thetaF_FEATURE_FMIN_THETA_CYCLIC
F_FEATURE_FMIN_THETA が指定された場合と同じ動作をしますF_FEATURE_DCMIN
dcminF_FEATURE_DCMAX
dcmaxF_FEATURE_DCAVE
dcaveF_FEATURE_DSMAX
dsmaxF_FEATURE_DSMIN
dsminF_FEATURE_DSAVE
dsaveF_FEATURE_NS
sibling_numF_FEATURE_PPS
ppsソート対象の特徴量は key1st, key2nd, key3rd にて3番目まで指定することが出来ます。 まず key1st でソートし key1st で同じ値だった物は key2nd でソートされ、 さらに key2nd でも同じだった物は key3rd でソートされます。 ソートキーが3つも必要ない場合は、下記のように指定します。これに従わなかった場合はパラメータエラーとなります。
direc1st, direc2nd, direc3rd は各キーでのソート順(昇順or降順)を決めるパラメータです。 昇順にソートする場合は 0 を、 降順にソートする場合は 1 を指定してください。
F_FEATURE_AXISTHETA
axisthetaF_FEATURE_AXISTHETA_CYCLIC
F_FEATURE_AXISTHETA が指定された場合と同じ動作をしますF_FEATURE_FMAX_THETA
fmax_thetaF_FEATURE_FMAX_THETA_CYCLIC
F_FEATURE_FMAX_THETA が指定された場合と同じ動作をしますF_FEATURE_FMIN_THETA
fmin_thetaF_FEATURE_FMIN_THETA_CYCLIC
F_FEATURE_FMIN_THETA が指定された場合と同じ動作をします[in] | hresult | ブローブ解析結果 |
[in] | key1st | 最優先ソートキー(ソート対象特徴量) |
[in] | direc1st | key1stのソート順 |
[in] | key2nd | 2番目に優先されるソートキー(ソート対象特徴量) |
[in] | direc2nd | key2ndのソート順 |
[in] | key3rd | 3番目に優先されるソートキー(ソート対象特徴量) |
[in] | direc3rd | key3rdのソート順 |
[in,out] | numbers | ソート対象ブローブ番号配列 |
[in] | num | numbersの要素数 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された。 | |
F_ERR_INVALID_OBJECT | hresutl に渡された結果ハンドルが不正 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
// エラー処理は省略しているので注意して下さい。 #include <stdio.h> #include "oal_aloc.h" #include "fie.h" INT main() { FHANDLE himg=NULL; FHANDLE measure_result; F_MEASURE_PARAMS param; PNT_T orgin; INT exerr; UINT *bloblist=NULL, blobnum, i; F_MEASURE_FILTER_RANGE filters[2]; // FIEライブラリの使用前に必ずコールする必要があります。 fnFIE_setup(); // 適当な2値画像を用意する - 画像ファイル名は適宜変更すること fnFIE_load_bmp( "test.bmp", &himg, F_COLOR_IMG_TYPE_UC8 ); // 座標原点の指定 orgin.x = 0; orgin.y = 0; // パラメータ設定 memset( ¶m, 0, sizeof(F_MEASURE_PARAMS) ); param.color_mode = F_MEASURE_WHITEFG_BLACKBG; param.neighborhood = 8; // メジャー実行 measure_result = fnFIE_measure_execute( himg, orgin, ¶m, &exerr ); // 有効なブローブのブローブ番号リストを取得 fnFIE_measure_get_list( measure_result, filters, 2, &bloblist, &blobnum ); // 面積の小さい順にブローブ番号リストをソートする fnFIE_measure_sort_list( measure_result, F_FEATURE_AREA, 0, F_FEATURE_NONE, 0, F_FEATURE_NONE, 0, bloblist, blobnum ); // 得られたブローブ番号列を表示 printf( "SORTBY AREA: " ); for( i=0; i<blobnum; i++ ) printf( "%d, ", bloblist[i] ); printf( "\n" ); // 配置順でソートし直す fnFIE_measure_specialsort_list( measure_result, F_MEASURE_UP_TO_LEFT_RIGHT, 0.0, bloblist, blobnum ); // 得られたブローブ番号列を表示 printf( "SORTBY ARRANGEMENT: " ); for( i=0; i<blobnum; i++ ) printf( "%d, ", bloblist[i] ); printf( "\n" ); // ブローブ番号配列は使い終わったらユーザー側で解放しなければならない。 // 解放には必ず fnOAL_free を使うこと fnOAL_free( bloblist ); fnFIE_free_object( measure_result ); // 終了処理 fnFIE_teardown(); return 0; }
INT FVALGAPI fnFIE_measure_specialsort_list | ( | FHANDLE | hresult, | |
enum f_measure_special_sort_order | order, | |||
DOUBLE | theta, | |||
UINT * | numbers, | |||
UINT | num | |||
) |
ブローブの位置情報に基づくソーティング
当社の従来ライブラリ(FVL, FVX など)と同様のアルゴリズムによって、 ブローブ列を2次元座標情報に基づいて並べ替えます。
並べ替えの方向は order パラメータと theta パラメータによって決まります。 order は並び順の方向を決める物で、下図のような意味となります。
theta は order で指定する並び順を任意の角度に傾けるパラメータです。
order==UP_TO_LEFT_RIGHT, theta==π/6 の場合の例
[in] | hresult | ブローブ解析結果ハンドル |
[in] | order | 並び替え順 |
[in] | theta | 回転角 |
[in,out] | numbers | 並び替えるブローブ番号の配列 |
[in] | num | ブローブ番号配列( numbers )の要素数 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが指定された。 | |
F_ERR_INVALID_OBJECT | hresutl に渡された結果ハンドルが不正 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
FHANDLE FVALGAPI fnFIE_measure_get_region | ( | FHANDLE | hresult, | |
UINT | blobno, | |||
INT * | exerr | |||
) |
REGION取得
ブローブ解析結果から、指定のブローブの領域情報をリージョンオブジェクトとして取得します。 blobno に指定するブローブ番号は、有効ブローブの番号でなければなりません。
[in] | hresult | ブローブ解析結果ハンドル |
[in] | blobno | リージョンを取得したいブローブのブローブ番号 |
[out] | exerr | エラーコード。エラーコードを受け取る必要の無い場合は、NULLを指定します。 |
*exerr==F_ERR_NONE | 正常終了 | |
*exerr==F_ERR_NOMEMORY | メモリ不足エラー | |
*exerr==F_ERR_INVALID_PARAM | パラメータエラー, blobno に指定されたブローブ番号が不正 | |
*exerr==F_ERR_INVALID_OBJECT | パラメータエラー, hresult に指定されたハンドルが不正 | |
*exerr==F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_measure_get_parent | ( | const FHANDLE | hresult, | |
UINT | blobno, | |||
UINT * | parent | |||
) |
親ブローブの取得
対象ブローブの親ブローブのブローブ番号を取得します。 対象ブローブが背景BLOBの場合は、0を返します。
対象ブローブ番号が有効なブローブ番号範囲(0〜( fnFIE_measure_get_blobnum() で取得される数-1))外か、 無効ブローブである場合は F_ERR_INVALID_PARAM を返します。 なお、エラー発生時は parent の値は変更されません。
[in] | hresult | ブローブ解析結果ハンドル |
[in] | blobno | 対象ブローブのブローブ番号 |
[out] | parent | 親ブローブのブローブ番号 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | hresult に指定されたオブジェクトハンドルが不正 | |
F_ERR_INVALID_PARAM | blobno に指定されたブローブ番号が不正, parent に NULL pointer が渡された | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_measure_get_child | ( | const FHANDLE | hresult, | |
UINT | blobno, | |||
UINT * | child | |||
) |
子ブローブの取得
対象ブローブの子ブローブのブローブ番号を取得します。 対象ブローブに子ブローブが無い場合は、自分自身のブローブ番号を返します。
対象ブローブ番号が有効なブローブ番号範囲(0〜( fnFIE_measure_get_blobnum() で取得される数-1))外か、 無効ブローブである場合は F_ERR_INVALID_PARAM を返します。 なお、エラー発生時は child の値は変更されません。
[in] | hresult | ブローブ解析結果ハンドル |
[in] | blobno | 対象ブローブのブローブ番号 |
[out] | child | 子ブローブのブローブ番号 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | hresult に指定されたオブジェクトハンドルが不正 | |
F_ERR_INVALID_PARAM | blobno に指定されたブローブ番号が不正, child に NULL pointer が渡された | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_measure_get_sibling_back | ( | const FHANDLE | hresult, | |
UINT | blobno, | |||
UINT * | back | |||
) |
1つ後ろの兄弟ブローブの取得
対象ブローブの1つ後ろの兄弟ブローブのブローブ番号を取得します。 兄弟ブローブが存在しない場合は、自分自身のブローブ番号となります。
対象ブローブ番号が有効なブローブ番号範囲(0〜( fnFIE_measure_get_blobnum() で取得される数-1))外か、 無効ブローブである場合は F_ERR_INVALID_PARAM を返します。 なお、エラー発生時は back の値は変更されません。
[in] | hresult | ブローブ解析結果ハンドル |
[in] | blobno | 対象ブローブのブローブ番号 |
[out] | back | 1つ後ろの兄弟ブローブのブローブ番号 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | hresult に指定されたオブジェクトハンドルが不正 | |
F_ERR_INVALID_PARAM | blobno に指定されたブローブ番号が不正, back に NULL pointer が渡された | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_measure_get_sibling_next | ( | const FHANDLE | hresult, | |
UINT | blobno, | |||
UINT * | next | |||
) |
1つ次の兄弟ブローブの取得
対象ブローブの1つ次の兄弟ブローブのブローブ番号を取得します。 兄弟ブローブが存在しない場合は、自分自身のブローブ番号となります。
対象ブローブ番号が有効なブローブ番号範囲(0〜( fnFIE_measure_get_blobnum() で取得される数-1))外か、 無効ブローブである場合は F_ERR_INVALID_PARAM を返します。 なお、エラー発生時は next の値は変更されません。
[in] | hresult | ブローブ解析結果ハンドル |
[in] | blobno | 対象ブローブのブローブ番号 |
[out] | next | 1つ次の兄弟ブローブのブローブ番号 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | hresult に指定されたオブジェクトハンドルが不正 | |
F_ERR_INVALID_PARAM | blobno に指定されたブローブ番号が不正, next に NULL pointer が渡された | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_measure_get_is_valid | ( | const FHANDLE | hresult, | |
UINT | blobno, | |||
UINT * | invalid | |||
) |
ブローブ番号の有効/無効チェック
対象ブローブが無効ブローブであるか、有効ブローブであるかを取得します。 無効ブローブとは、BLOBの解析中に他のBLOBと連結するなどして、 「途中まで存在していたが、最後には無くなってしまったBLOB」です。
対象ブローブ番号が有効なブローブ番号範囲(0〜( fnFIE_measure_get_blobnum() で取得される数-1))外 で有る場合はエラーとなり F_ERR_INVALID_PARAM を返します。 なお、エラー発生時は invalid の値は変更されません。
[in] | hresult | ブローブ解析結果ハンドル |
[in] | blobno | 対象ブローブのブローブ番号 |
[out] | invalid | 有効==0, 無効==1。 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | hresult に指定されたオブジェクトハンドルが不正 | |
F_ERR_INVALID_PARAM | blobno に指定されたブローブ番号が不正, invalid に NULL pointer が渡された | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_measure_get_blobnum | ( | const FHANDLE | hresult, | |
UINT * | num | |||
) |
全ブローブ数の取得
無効ブローブと有効ブローブを合わせた全てのブローブの個数を返します。 他の2値ブローブ解析関数群で、ブローブ番号を指定する際は、 0〜(本関数で取得した数-1) がブローブ番号範囲となります。
有効なブローブの数を取得したい場合は fnFIE_measure_get_real_blobnum() を使用して下さい。
[in] | hresult | ブローブ解析結果ハンドル |
[out] | num | 全ブローブ数 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | hresult に指定されたオブジェクトハンドルが不正 | |
F_ERR_INVALID_PARAM | num に NULL pointer が渡された | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
INT FVALGAPI fnFIE_measure_get_real_blobnum | ( | const FHANDLE | hresult, | |
UINT * | num | |||
) |
有効BLOB数の取得
有効なブローブの個数を返します。 但し、有効ブローブ数に背景ブローブ(0番)の数は含みません。 無効ブローブを含めた全てのブローブ数を取得したい場合は fnFIE_measure_get_blobnum() を使用して下さい。
[in] | hresult | ブローブ解析結果ハンドル |
[out] | num | 有効ブローブ数 |
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_OBJECT | 不正なハンドルが渡された | |
F_ERR_INVALID_PARAM | num に NULL pointer が渡された | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |