色判定
[色彩検査]


関数

FHANDLE FVALGAPI fnFIE_colorcheck_open_table (INT size)
 色票テーブルの生成
INT FVALGAPI fnFIE_colorcheck_set_right_color_chart (FHANDLE htbl, INT id, const F_COLOR_CHART *chart)
 正解色票の登録
INT FVALGAPI fnFIE_colorcheck_clear_right_color_chart (FHANDLE htbl)
 すべての色票を削除
INT FVALGAPI fnFIE_colorcheck_erase_right_color_chart (FHANDLE htbl, INT id)
 正解色票の削除
INT FVALGAPI fnFIE_colorcheck_get_table_size (FHANDLE htbl, INT *size)
 テーブルサイズの取得
INT FVALGAPI fnFIE_colorcheck_get_num_color_chart (FHANDLE htbl, INT *num)
 登録済正解色票数の取得
INT FVALGAPI fnFIE_colorcheck_get_right_color_chart (FHANDLE htbl, INT id, F_COLOR_CHART *chart)
 正解色票の取得
INT FVALGAPI fnFIE_colorcheck_execute (FHANDLE htbl, const F_COLOR_CHART *target, enum f_colorcheck_norm_type norm_type, const DOUBLE *weight, DOUBLE threshold, F_COLOR_CHART *right, INT *id, DOUBLE *norm)
 色判定の実行
INT FVALGAPI fnFIE_colorcheck_get_detail_result (FHANDLE htbl, INT id, F_COLOR_CHART *chart, DOUBLE *norm)
 色判定の詳細情報を取得

関数

FHANDLE FVALGAPI fnFIE_colorcheck_open_table ( INT  size  ) 

色票テーブルの生成

色票テーブルのメモリを確保します。 色票テーブルは、複数の色票を正解色票として保持します。

最大色票数
size は、登録可能な最大色票数です。 1以上を指定します。
確保した色票テーブルは不要になったら fnFIE_free_object() にて解放してください。

引数:
[in] size テーブルのサイズ(最大色票数)
戻り値:
確保した色票テーブルの先頭アドレスを返します。 ライセンスエラー、未初期化エラー、またはメモリ不足などで確保に失敗した場合は、NULLを返します。

INT FVALGAPI fnFIE_colorcheck_set_right_color_chart ( FHANDLE  htbl,
INT  id,
const F_COLOR_CHART chart 
)

正解色票の登録

指定したIDに対応した色票を追加(登録)します。

色票のID
登録される色票は、IDによって管理されます。 IDは、条件を満たした任意の値をユーザーが指定します。自動的にIDは決定されません。 同一の色票テーブル内に同じIDの色票を登録することはできません。 指定したIDの色票が、既に色票テーブルに登録されている場合は色票は上書きされます。 IDは 0≦ id <テーブルの最大色票数 の範囲で指定します。
引数:
[in,out] htbl 色票テーブルのハンドル
[in] id 正解色票に対応したID
[in] chart 正解色票
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 不正なオブジェクトが渡された
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CC_INVALID_ID 不正なIDが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_colorcheck_clear_right_color_chart ( FHANDLE  htbl  ) 

すべての色票を削除

色票テーブルに登録されているすべての色票を削除します。

引数:
[in,out] htbl 色票テーブルのハンドル
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 不正なオブジェクトが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_colorcheck_erase_right_color_chart ( FHANDLE  htbl,
INT  id 
)

正解色票の削除

指定したIDに対応した登録されている正解色票を削除します。 指定したIDに対応した正解色票が登録されていない場合は、 F_ERR_CC_INVALID_ID を返します。 IDは 0≦ id <テーブルの最大色票数 の範囲で指定します。

引数:
[in,out] htbl 色票テーブルのハンドル
[in] id 色票のID
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 不正なオブジェクトが渡された
F_ERR_CC_INVALID_ID 不正なIDが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_colorcheck_get_table_size ( FHANDLE  htbl,
INT *  size 
)

テーブルサイズの取得

色票テーブルに登録可能な最大色票数を取得します。

引数:
[in] htbl 色票テーブルのハンドル
[out] size 色票の最大保持可能数
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 不正なオブジェクトが渡された
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_colorcheck_get_num_color_chart ( FHANDLE  htbl,
INT *  num 
)

登録済正解色票数の取得

色票テーブルに登録されている正解色票数を取得します。

引数:
[in] htbl 色票テーブルのハンドル
[out] num 登録されている色票数
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 不正なオブジェクトが渡された
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_colorcheck_get_right_color_chart ( FHANDLE  htbl,
INT  id,
F_COLOR_CHART chart 
)

正解色票の取得

色票テーブルに登録されている指定したIDに対応した正解色票を取得します。 指定したIDに対応した正解色票が登録されていない場合は、 F_ERR_CC_INVALID_ID を返します。 IDは 0≦ id <テーブルの最大色票数 の範囲で指定します。

引数:
[in] htbl ノルムテーブルのハンドル
[in] id 色票のID
[out] chart 正解色票
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 不正なオブジェクトが渡された
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_colorcheck_execute ( FHANDLE  htbl,
const F_COLOR_CHART target,
enum f_colorcheck_norm_type  norm_type,
const DOUBLE *  weight,
DOUBLE  threshold,
F_COLOR_CHART right,
INT *  id,
DOUBLE *  norm 
)

色判定の実行

下図に示すように、指定した処理対象色票に最も近い正解色票を色票テーブルより取得します。 取得可能な結果は、正解色票、対応したID、処理対象色票とのノルムとなります。 最も近い正解色票が複数存在する場合は、先に登録された色票が取得されます。

colorcheck.png

ノルムタイプ
マハラノビスノルムの計算は色票テーブルに登録されている正解色票を基準とします。 そのため、登録されているすべての正解色票で計算不可の場合は、 id に−1が代入されます。 rightnorm は処理されません。
重み付きユークリッドノルムの重み係数
weight は、重み付きユークリッドノルムの計算に使用されます。 それ以外のノルムでは指定しても使用されません。 必要のない場合はNULLを指定します。 ただし、NULL以外を指定してもエラーにはなりません。 weight は、要素数3の配列を指定してください。 3未満の場合の動作は保証しません。
閾値(ノルム)
閾値を与えた場合、閾値以下のノルムが存在しない場合は、 id に−1が代入されます。 rightnorm は処理されません。 閾値が必要ない場合は、負の値を指定します。
出力用パラメータ
rightnorm が必要ない場合は、NULLを指定してください。 ただし、 id にNULLを指定することはできません。 id は、結果が取得できない場合に−1が代入されることも含めて、必ず取得されます。
使用例
// エラー処理は省略しているので注意して下さい。
#include "fie.h"

VOID color_check()
{
    F_COLOR_CHART right, target;
    FHANDLE       hsrc = NULL;
    FHANDLE       hchild = NULL;
    FHANDLE       htable = NULL;
    DOUBLE        color[3], norm;
    INT           id;

    // 色票テーブルを生成する
    htable = fnFIE_colorcheck_open_table( 10 );

    // 画像ファイルを読み込む
    fnFIE_load_png( "fie_colorcheck1.png", &hsrc, F_COLOR_IMG_TYPE_UC8 );

    // 正解色票を色票テーブルに登録する
    hchild = fnFIE_img_child_alloc( hsrc, 165, 350, 25, 25 );
    fnFIE_colorchart_calc_image( hchild, NULL, &right );
    fnFIE_free_object( hchild );
    hchild = NULL;

    // ID1を登録する
    fnFIE_colorcheck_set_right_color_chart( htable, 1, &right );

    hchild = fnFIE_img_child_alloc( hsrc, 320, 215, 25, 25 );
    fnFIE_colorchart_calc_image( hchild, NULL, &right );
    fnFIE_free_object( hchild );
    hchild = NULL;

    // ID5を登録する
    fnFIE_colorcheck_set_right_color_chart( htable, 5, &right );

    // 処理対象色票を設定する
    color[0] = 64.0;
    color[1] = 128.0;
    color[2] = 192.0;

    fnFIE_colorchart_set_color( color, &target );

    // ユークリッドノルム基準で色彩検査を実行する
    // 閾値は指定をしない
    fnFIE_colorcheck_execute( htable, &target, F_CC_EUCLIDEAN, NULL, -1.0, &right, &id, &norm );

    // 実行後のID1の正解色票の情報を取得する
    fnFIE_colorcheck_get_detail_result( htable, 1, &right, &norm );

    // 実行後のID5の正解色票の情報を取得する
    fnFIE_colorcheck_get_detail_result( htable, 5, &right, &norm );

    fnFIE_free_object( hsrc );
    fnFIE_free_object( hchild );
    fnFIE_free_object( htable );

    return;
}

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

    color_check();

    // 終了処理
    fnFIE_teardown();

    return 0;
}
引数:
[in] htbl ノルムテーブルのハンドル
[in] target 対象色票
[in] norm_type ノルムタイプ
  • F_CC_EUCLIDEAN(ユークリッドノルム)
  • F_CC_WEIGHTED_EUCLIDEAN(重み付きユークリッドノルム)
  • F_CC_MAHALANOBIS(マハラノビスノルム)
  • F_CC_MANHATTAN(マンハッタンノルム)
  • F_CC_CHEBYSHEV(チェビシェフノルム)
[in] weight 重み付きユークリッドノルムの重み係数
[in] threshold 閾値(ノルム)
[out] right 正解色票
[out] id 正解色票のID
[out] norm ノルム
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 不正なオブジェクトが渡された
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_colorcheck_get_detail_result ( FHANDLE  htbl,
INT  id,
F_COLOR_CHART chart,
DOUBLE *  norm 
)

色判定の詳細情報を取得

指定したIDに対応した色判定の結果を取得します。 fnFIE_colorcheck_execute() では、処理対象色票に対して最も近い色票情報しか取得できません。 本関数により、すべての情報を取得します。 指定したIDに対応した正解色票が登録されていない場合は、 F_ERR_CC_INVALID_ID を返します。 IDは 0≦ id <テーブルの最大色票数 の範囲で指定します。

色票テーブル
fnFIE_colorcheck_execute() を実行前に本関数は使用できません。 また、 fnFIE_colorcheck_execute() を実行後に、 正解色票を追加したり削除した場合には正解色票と計算されたノルムとの対応関係がなくなります。 ともにエラーコード F_ERR_CC_INVALID_TABLE が返されます。
出力パラメータ
chartnorm が必要ない場合は、NULLを指定してください。 ただし、両パラメータともNULLが指定されていた場合は、エラーとなります。
引数:
[in] htbl 色票テーブルのハンドル
[in] id 色票のID
[out] chart 正解色票
[out] norm ノルム
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 不正なオブジェクトが渡された
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CC_INVALID_ID 不正なIDが渡された
F_ERR_CC_INVALID_TABLE 不正な色票テーブルが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー


Documentation copyright © 2009-2023 FAST Corporation.
Generated on Sat Oct 28 09:27:58 2023 for FIEライブラリ by doxygen 1.5.6-FASTSP-p2