実行
[2値ブローブ解析(拡張版)]


データ構造

struct  F_MEASURE2_PARAMS
 ブローブ解析処理(拡張版)パラメータ [詳細]

列挙型

enum  f_measure2_color_mode {
  F_MEASURE2_BLACKFG_WHITEBG = F_MEASURE_BLACKFG_WHITEBG, F_MEASURE2_WHITEFG_BLACKBG = F_MEASURE_WHITEFG_BLACKBG,
  F_MEASURE2_BLACKFG = F_MEASURE_BLACKFG, F_MEASURE2_WHITEFG = F_MEASURE_WHITEFG
}
 ブローブ解析(拡張版):対象色指定 [詳細]

関数

FHANDLE FVALGAPI fnFIE_measure2_execute (FHANDLE himage, PNT_T offset, const F_MEASURE2_PARAMS *params, INT *exerr)
 2値ブローブ解析実行

列挙型

ブローブ解析(拡張版):対象色指定

列挙型の値:
F_MEASURE2_BLACKFG_WHITEBG  前景が黒(0)、背景が白(1)
F_MEASURE2_WHITEFG_BLACKBG  前景が白(1)、背景が黒(0)
F_MEASURE2_BLACKFG  前景が黒(0)、背景は解析しない
F_MEASURE2_WHITEFG  前景が白(1)、背景は解析しない


関数

FHANDLE FVALGAPI fnFIE_measure2_execute ( FHANDLE  himage,
PNT_T  offset,
const F_MEASURE2_PARAMS params,
INT *  exerr 
)

2値ブローブ解析実行

himage にて指定された2値画像に対して、2値ブローブ解析処理を実行します。 himage は幅が 524287 以下、高さが 134217727 以下、チャネル数=1の2値画像(type=F_IMG_BIN)でなければなりません。

offset は2値画像の座標系を指定するためのパラメータであり、 画像(0,0)の画素の座標をいくつと見なすかということです(下図参照)。 チャイルド画像に対してブローブ解析を行う際に、ルート画像の原点を ブローブ解析時の座標の原点としたい場合などに利用します。

measure_offset.png

Fig. offsetパラメータの説明

但し、offset値を0以外に設定する場合には、座標範囲に注意してください。 offsetを付加した画像の座標範囲、

  • offset.x ≦ x ≦ (offset.x + (画像の幅) - 1)
  • offset.y ≦ y ≦ (offset.y + (画像の高さ) - 1)
が、それぞれ

  • -524286 ≦ x ≦ 524286
  • -134217726 ≦ y ≦ 134217726
を満たしていなければなりません。

params はブローブ解析のためのパラメータセットです。 F_MEASURE2_PARAMS のドキュメントを参照して下さい。

返されたハンドルオブジェクトは不要になったら fnFIE_free_object() にて解放してください。

引数:
[in] himage 入力画像( type: bin )
[in] offset 原点座標オフセット
[in] params パラメータセット
[out] exerr エラーコード。エラーコードを受け取る必要の無い場合は、NULLを指定します。
戻り値:
正常に終了した場合は、拡張版の2値ブローブ解析結果(F_MEASURE2_RESULTオブジェクト) を返します。 何らかのエラーが発生し、処理が失敗した場合は NULL を返します。 正常、異常、どちらの場合も exerr パラメータにエラーコード受け取り先変数のポインタが 渡された場合は、そこにエラーコードを代入して返します。返されるエラーコードは下記の何れかです。
戻り値:
*exerr==F_ERR_NONE 正常終了
*exerr==F_ERR_NOMEMORY メモリ不足エラー
*exerr==F_ERR_INVALID_PARAM パラメータエラー
*exerr==F_ERR_INVALID_IMAGE himage パラメータに指定された画像オブジェクトが不正
*exerr==F_ERR_MEASURE_RUN_OVERFLOW ラン数が params->max_runs を超えたため、中断した
*exerr==F_ERR_MEASURE_BLOB_OVERFLOW ブローブ数が UI32_MAX を超えたため、中断した
*exerr==F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
example code
// エラー処理は省略しているので注意して下さい。
#include <stdio.h>
#include "fie.h"

INT main()
{
    FHANDLE himg = NULL;
    FHANDLE measure_result;
    F_MEASURE2_PARAMS param;
    PNT_T orgin;
    INT exerr;
    UDLONG blobnum;

    // FIEライブラリの使用前に必ずコールする必要があります。
    fnFIE_setup();

    // 適当な2値画像を用意する - 画像ファイル名は適宜変更すること
    fnFIE_load_bmp( "test.bmp", &himg, F_COLOR_IMG_TYPE_UC8 );

    // 座標原点の指定
    orgin.x = 0;
    orgin.y = 0;

    // パラメータ設定
    memset( &param, 0, sizeof(F_MEASURE2_PARAMS) );
    param.color_mode = F_MEASURE2_WHITEFG_BLACKBG;
    param.neighborhood = 8;

    // メジャー実行
    measure_result = fnFIE_measure2_execute( himg, orgin, &param, &exerr );

    // 全ブローブ数の取得&表示
    fnFIE_measure2_get_blobnum( measure_result, &blobnum );
    printf( "blobs:%llu\n", blobnum );

    fnFIE_free_object( measure_result );
    fnFIE_free_object( himg );

    // 終了処理
    fnFIE_teardown();

    return 0;
}


Documentation copyright © 2009-2026 TOKYO ELECTRON DEVICE LIMITED.
Generated on Tue Mar 24 10:10:59 2026 for FIEライブラリ by doxygen 1.5.6-FASTSP-p2