ツール
[FPM(特徴点応用マッチング)]


関数

INT FVALGAPI fnFIE_fpm_pattern_automask (FHANDLE hsrc, enum f_fpm_markshape shape, INT hole, INT offset, INT threshold, INT mask_type, FHANDLE *hmask, F_FPM_MARKINFO *fpm_markinfo, INT *score)
 自動マーク認識&マスク設定
INT FVALGAPI fnFIE_fpm_pattern_make_image (FHANDLE hsrc, enum f_fpm_markshape shape, INT hole, INT threshold, FHANDLE *hdst, F_FPM_MARKINFO *fpm_markinfo, INT *score)
 自動マーク認識&画像生成
INT FVALGAPI fnFIE_fpm_get_compressed_feature_edges (FHANDLE hfpm, FHANDLE htarget, BOOL is_pattern, F_DEDGE *edges, INT *edges_num)
 マッチングで使用した圧縮特徴量を取得(勾配方向付きエッジ型)

関数

INT FVALGAPI fnFIE_fpm_pattern_automask ( FHANDLE  hsrc,
enum f_fpm_markshape  shape,
INT  hole,
INT  offset,
INT  threshold,
INT  mask_type,
FHANDLE *  hmask,
F_FPM_MARKINFO fpm_markinfo,
INT *  score 
)

自動マーク認識&マスク設定

プログラム内部で発生させたモデルとなるマークの形状(円,長方形,十字)をテンプレートとし, 対象物となるマークとのマッチングを行い、形状情報を抽出し、その画像上で形状の輪郭だけを残すようなマスク画像を作成します。 さらにその形状情報(中心、円の半径、傾き、頂点座標)を取得することも可能です.

fpm_automask.png

自動マーク認識とマスク設定

中抜きについて(パラメータ hole)
中抜きパラメータを使用するとマークに穴が開いていることを判断し、マークとして認識します。 ただし、背景エリアと同じ濃度変化をもつ方向の穴のみが検出可能です。
fpm_automaskhole.png

中抜き有りor無しマークの定義

オフセットパラメータについて(パラメータ offset)
認識したマークに対してマスクをかける場合に、マスクをオフにする領域を決定するパラメータです。 このパラメータを大きくするほど、多くのエッジが残ることになります。 なお、抽出されるマスクの設定に関するパラメータなので、この値を変更しても本関数のスコアやマーク検出性能には関係しません。
fpm_automaskoffset.png

offsetパラメータの効果

引数:
[in] hsrc 対象画像オブジェクト(type:uc8のみ) チャネル数は 1 でなければいけません。
[in] shape マーク形状の指定
F_FPM_SHAPE_AUTO を実行した場合には形状、中抜きの有無の検出を自動で行いますが、全ての形状に対しての検出処理を行うため処理時間は掛かってしまいます。
  • F_FPM_SHAPE_AUTO 自動判別
  • F_FPM_SHAPE_CIRC 円
  • F_FPM_SHAPE_RECT 長方形
  • F_FPM_SHAPE_CROSS 十字
[in] hole 中抜きの有無。shape にF_FPM_SHAPE_AUTOを指定した場合にはこの値は使用せず、中抜きの有無を自動で検出します。
  • TRUE 中抜きあり
  • FALSE 中抜きなし
[in] offset 検出したマークの周辺でマスクをキャンセルする(エッジを残す)際の片幅を指定します(1≦offset≦10)
輪郭が綺麗でないマークの場合にはこの値を大きめにします(推奨値:3,単位:画素)。
[in] threshold スコアしきい値(範囲:10≦threshold≦99)
この値を超えたスコアを持つパタンの結果を格納します(推奨値:50)。
[in] mask_type 作成するマスク画像オブジェクトの画像タイプを指定します。FPMで使用するマスクを生成する場合には 0 の uc8 を指定してください。
  • 0 uc8 の画像生成
  • 1 bin の画像生成
[out] hmask マスク画像を格納する画像オブジェクトへのポインタ
hsrcと同じサイズの画像オブジェクト(uc8 or bin)が生成され、マスクをONの箇所には1, マスクをOFFの箇所には0が入ります。
hmask にNULLを指定した場合には結果の格納を行いません。
 *hmask の値は0で初期化しておいてください。
[out] fpm_markinfo 検出したFPMマーク情報を格納する構造体のポインタ
fpm_markinfoにNULLを指定した場合には結果の格納を行いません。
[out] score 正常終了した場合のマークのスコア(100点満点)
NULLを指定した場合には結果の格納を行いません。
戻り値:
F_ERR_NONE 正常終了
F_ERR_CALC_IMPOSSIBLE 計算不可能(対応するマークが見つかりませんでした)
F_ERR_NOMEMORY メモリ不足
F_ERR_INVALID_PARAM 不正なパラメータが入力されました
F_ERR_FPM_NOFEATURE 特徴量計測不可
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
注意:
  • 指定した画像オブジェクト内に一つのマークが存在するような状況でのみ有効です。2つ以上のマークが存在する場合にはマークごとにエリアを区切り、別々に処理する必要があります。
  • hmaskオブジェクトによってマスク情報を取得した場合には、必ず fnFIE_free_object() で解放してください。
  • 本関数でマスクを作成し、サーチ等に使用する際には必ず確認作業を行ってください。
    • マーク情報が正しくできているか(fpm_markinfoの値を確認)。
    • 画像とマスクを描画し、マーク以外の箇所がマスクできているか。
    • マスク設定後のエッジ情報を取得して、マークの輪郭のエッジが残っているか。
  • 中抜きに関しては、検出したマークに穴が開いている状態を示しており、検出したマークの中に背景色のマークが存在する状態になります。よって、コントラスト変化の方向(明<->暗)が関係します。

INT FVALGAPI fnFIE_fpm_pattern_make_image ( FHANDLE  hsrc,
enum f_fpm_markshape  shape,
INT  hole,
INT  threshold,
FHANDLE *  hdst,
F_FPM_MARKINFO fpm_markinfo,
INT *  score 
)

自動マーク認識&画像生成

・プログラム内部で発生させたモデルとなるマーク形状(円,長方形,十字)をテンプレートとし, 対象物となるマークとのマッチングを行い,その画像を生成します。 さらにその形状情報(中心、円の半径、傾き、頂点座標)を取得することも可能です.

fpm_makeimage.png

自動マーク認識と画像生成

中抜きについて(パラメータ hole)
中抜きパラメータを使用するとマークに穴が開いていることを判断し、マークとして認識します。 ただし、背景エリアと同じ濃度変化をもつ方向の穴のみが検出可能です。
fpm_automaskhole.png

中抜き有りor無しマークの定義

引数:
[in] hsrc 対象画像オブジェクト(type:uc8のみ) チャネル数は 1 でなければいけません。
[in] shape マーク形状の指定
F_FPM_SHAPE_AUTO を実行した場合には形状、中抜きの有無の検出を自動で行いますが、全ての形状に対しての検出処理を行うため処理時間は掛かってしまいます。
  • F_FPM_SHAPE_AUTO 自動判別
  • F_FPM_SHAPE_CIRC 円
  • F_FPM_SHAPE_RECT 長方形
  • F_FPM_SHAPE_CROSS 十字
[in] hole 中抜きの有無。shape にF_FPM_SHAPE_AUTOを指定した場合にはこの値は使用せず、中抜きの有無を自動で検出します。
  • TRUE 中抜きあり
  • FALSE 中抜きなし
[in] threshold スコアしきい値(範囲:10≦threshold≦99)
この値を超えたスコアを持つパタンの結果を格納します(推奨値:50)。
[out] hdst パタン画像を格納する画像オブジェクトへのポインタ
hsrcと同じサイズの画像オブジェクト(type:uc8)が生成され、認識した背景、パタンそれぞれの平均濃度値を求めて描画します。 hdst にNULLを指定した場合には結果の格納を行いません。
 *hdst の値は0で初期化しておいてください。
[out] fpm_markinfo 検出したFPMマーク情報を格納する構造体のポインタ
fpm_markinfoにNULLを指定した場合には結果の格納を行いません。
[out] score 正常終了した場合のマークのスコア(100点満点)
NULLを指定した場合には結果の格納を行いません。
戻り値:
F_ERR_NONE 正常終了
F_ERR_CALC_IMPOSSIBLE 計算不可能(対応するマークが見つかりませんでした)
F_ERR_NOMEMORY メモリ不足
F_ERR_INVALID_PARAM 不正なパラメータが入力されました
F_ERR_INVALID_IMAGE 不正な画像オブジェクトが入力されました
F_ERR_FPM_NOFEATURE 特徴量計測不可(識別したマークの平均濃度が一致したため、塗りつぶしによる判断が不可能です。)
ただしこの場合でもNULL以外を指定した場合には fpm_markinfo にマーク情報が格納されます。
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
注意:
  • 指定した画像オブジェクト内に一つのマークが存在するような状況でのみ有効です。2つ以上のマークが存在する場合にはマークごとにエリアを区切り、別々に処理する必要があります。
  • hdstオブジェクトによってパタン画像情報を取得した場合には、必ず fnFIE_free_object() で解放してください。
  • 本関数で画像を作成し、その後の処理に使用する場合には、必ず確認作業を行ってください。
    • 取得した画像に正しくマークが描かれているか。
    • マーク情報が正しくできているか(fpm_markinfoの値を確認)。
  • 中抜きに関しては、検出したマークに穴が開いている状態を示しており、検出したマークの中に背景色のマークが存在する状態になります。よって、コントラスト変化の方向(明<->暗)が関係します。

INT FVALGAPI fnFIE_fpm_get_compressed_feature_edges ( FHANDLE  hfpm,
FHANDLE  htarget,
BOOL  is_pattern,
F_DEDGE edges,
INT *  edges_num 
)

マッチングで使用した圧縮特徴量を取得(勾配方向付きエッジ型)

FPMの粗い精度でのマッチングの内部処理で生成される圧縮された特徴量を、勾配方向付きエッジデータ型で取得します。

マスターパタン特徴量から算出された圧縮特徴量を取得する場合はパラメータ is_pattern に TRUE を、 サーチ対象の特徴量から算出された圧縮特徴量を取得する場合は FALSE を設定してください。

edges には予め必要な領域を確保する必要があります。 必要な領域の最大数は下記の関数で求めることができます。

引数:
[in] hfpm FPMオブジェクト
[in] htarget 圧縮特徴量取得に使用する特徴量情報が格納されたオブジェクト
特徴量オブジェクトが有効です。 NULLが指定された場合にはFPMオブジェクトに格納された(最後にマッチングに使用した)特徴量情報を使用します。
[in] is_pattern 取得する圧縮特徴量がマスターパタンのものであるかどうか
[out] edges 勾配付き圧縮エッジ情報
予め必要な領域を確保する必要があります。
[out] edges_num 取得した圧縮特徴量数
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足
F_ERR_INVALID_OBJECT 引数オブジェクトの種別が異常
F_ERR_INVALID_PARAM 引数異常
F_ERR_FPM_NOFEATURE 特徴量がありません
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
注意:
  • 指定するFPMオブジェクトは、マッチング処理( fnFIE_fpm_matching_image() or fnFIE_fpm_matching_feature() or fnFIE_fpm_matching() )を実行済みのものを指定する必要があります。
  • 指定するFPMオブジェクトとターゲットオブジェクトに格納された特徴量は、同じマッチングモードで生成したものでなければなりません。
  • 強度の出力値は0が入ります。
  • 圧縮率やマッチングの状況によっては、取得される圧縮特徴量は無圧縮の特徴量と一致する場合があります。


Documentation copyright © 2009-2024 FAST Corporation.
Generated on Fri Aug 9 16:38:47 2024 for FIEライブラリ by doxygen 1.5.6-FASTSP-p2