パタン操作
[グレイサーチ(正規化相関サーチ)]


列挙型

enum  f_comp_filter {
  F_COMP_MODE_SMOOTH = 0, F_COMP_MODE_MIN = 1,
  F_COMP_MODE_MAX = 2, F_COMP_MODE_AVERAGE2 = 3
}
 圧縮フィルタ指定 [詳細]

関数

FHANDLE FVALGAPI fnFIE_gs2_pattern_alloc (FHANDLE himage, FHANDLE hmask, INT mark_offsetx, INT mark_offsety, enum f_comp_filter filter, INT *errorcode)
 グレイサーチパターンオブジェクトの生成
INT FVALGAPI fnFIE_gs2_pattern_set_mask (FHANDLE hpattern, FHANDLE hmask)
 パタンマスクの再設定
INT FVALGAPI fnFIE_gs2_pattern_unset_mask (FHANDLE hpattern)
 パタンマスクの除去
INT FVALGAPI fnFIE_gs2_pattern_rotate (FHANDLE hpattern, INT rot_angle, INT clip_width, INT clip_height, INT rotate_method, FHANDLE *rotate_pattern)
 回転パターンの生成
INT FVALGAPI fnFIE_gs2_pattern_get_image (FHANDLE hpattern, FHANDLE *himage)
 パターン画像を取得する
INT FVALGAPI fnFIE_gs2_pattern_get_mask (FHANDLE hpattern, FHANDLE *himage)
 マスク画像を取得する
INT FVALGAPI fnFIE_gs2_pattern_get_comp_filter (FHANDLE hpattern, enum f_comp_filter *filter)
 圧縮フィルタ種別の取得
INT FVALGAPI fnFIE_gs2_pattern_get_offset (FHANDLE hpattern, INT *x, INT *y)
 通知座標オフセットの取得
INT FVALGAPI fnFIE_gs2_pattern_set_offset (FHANDLE hpattern, INT x, INT y)
 通知座標オフセットの設定
INT FVALGAPI fnFIE_gs2_pattern_set_comp_filter (FHANDLE hpattern, enum f_comp_filter filter)
 圧縮フィルタの変更
INT FVALGAPI fnFIE_gs2_pattern_get_comp_image (FHANDLE hpattern, INT unit, FHANDLE *himage)
 圧縮画像を取得する

列挙型

圧縮フィルタ指定

画像ピラミッドを生成するための処理を指定します。 このフィルタ処理をn回繰り返し適用することで、圧縮度1から圧縮度nまでの画像を生成します。

列挙型の値:
F_COMP_MODE_SMOOTH  通常フィルタ
圧縮前画像での2x2ピクセルの濃度値から平均値を計算し、圧縮後の1ピクセルの濃度値とします。
F_COMP_MODE_MIN  最小値フィルタ
圧縮前画像での2x2ピクセルの濃度値のうち最も小さい値を、圧縮後の1ピクセルの濃度値とします。
F_COMP_MODE_MAX  最大値フィルタ
圧縮前画像での2x2ピクセルの濃度値のうち最も大きい値を、圧縮後の1ピクセルの濃度値とします。
F_COMP_MODE_AVERAGE2  再平均フィルタ
通常フィルタで圧縮画像を生成後、2x2のカーネルで平滑化を行います。


関数

FHANDLE FVALGAPI fnFIE_gs2_pattern_alloc ( FHANDLE  himage,
FHANDLE  hmask,
INT  mark_offsetx,
INT  mark_offsety,
enum f_comp_filter  filter,
INT *  errorcode 
)

グレイサーチパターンオブジェクトの生成

画像からグレイサーチパターンオブジェクトを生成します。
サーチパターン用画像は F_IMG_UC8形式で 1チャネルの画像です。
サーチに利用可能な最大の画像サイズは32768x32768です。 また、生成したパターンオブジェクトから fnFIE_gs2_pattern_rotate() を用いて回転パターンを生成したい場合、最大23170x23170となります。

マスクは F_IMG_UC8形式 又は F_IMG_BIN形式 の1チャネル画像で、 濃度値が0以外の画素をマスクします。
マスク画像はサーチパターン画像 himage と幅、高さが同一でなければいけません。
マスクが必要ないときは hmask に NULL を投入すればマスクなしのサーチパターンを生成します。
不要になったパターンは必ず fnFIE_free_object() で解放してください。

引数:
[in] himage サーチパターンにする画像オブジェクト ( type: uc8 )
[in] hmask マスクにする画像オブジェクト ( type: bin, uc8 )
NULLを投入するとマスクなしのパターンになります。
[in] mark_offsetx 回答X座標オフセット(100倍値)
[in] mark_offsety 回答Y座標オフセット(100倍値)
[in] filter 内部で画像ピラミッドの生成に使うフィルタの種別
  • F_COMP_MODE_SMOOTH 通常(平均)フィルタ 特に問題なければこれを指定
  • F_COMP_MODE_MIN 最小値フィルタ パタンが黒い細線で構成されているような場合に指定
  • F_COMP_MODE_MAX 最大値フィルタ パタンが白い細線で構成されているような場合に指定
  • F_COMP_MODE_AVERAGE2 再平均フィルタ パタンにカメラノイズが多い場合に指定
[out] errorcode エラーコード。エラーコードを受け取る必要の無い場合は、NULLを指定します。
  • F_ERR_NONE 正常終了
  • F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
  • F_ERR_NOMEMORY メモリ不足
  • F_ERR_INVALID_OBJECT 渡されたオブジェクトの種別が異常
  • F_ERR_GS_NO_CONTRAST パタン画像に情報が足りないため、パタンにならない。 (==マスク部をのぞいた画像の濃度分散が0.0になる)
  • F_ERR_INVALID_IMAGE 対応していない画像が渡された
    • hmaskhimage のサイズが違う
    • 非対応画像type
    • チャネル数が1でない
    • 入力画像が大きすぎる
  • F_ERR_INVALID_PARAM パラメータ異常
    • himage オブジェクトがNULL
    • filter に異常な値が渡された
戻り値:
正常終了した場合は、生成したグレイサーチパターンオブジェクトのハンドルを返します。 ライセンスエラー、未初期化エラー、パラメータエラー、またはメモリ不足により生成できなかったときはNULLを返します。

INT FVALGAPI fnFIE_gs2_pattern_set_mask ( FHANDLE  hpattern,
FHANDLE  hmask 
)

パタンマスクの再設定

グレイサーチパタン hpattern に適用されているマスクを新たなマスクに変更します。
マスクは F_IMG_UC8形式 又は F_IMG_BIN形式 の1チャネル画像で、 濃度値が0以外の画素をマスクします。
マスク画像はサーチパターン画像 himage と幅、高さが同一でなければいけません。

引数:
[in,out] hpattern グレイサーチパタンオブジェクト
[in] hmask 新しいマスクにする画像オブジェクト( type : bin, uc8 )
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足
F_ERR_INVALID_OBJECT 渡されたオブジェクトの種別が異常,またはオブジェクトがNULL
F_ERR_GS_NO_CONTRAST パタン画像に情報が足りないため、パタンにならない。 (==マスク部をのぞいた画像の濃度分散が0.0になる)
F_ERR_INVALID_IMAGE 対応していない画像が渡された,または画像がNULL
F_ERR_INVALID_PARAM パラメータ異常
  • hmask のチャネル数が1でない
  • hmask とパタンのサイズが違う
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_gs2_pattern_unset_mask ( FHANDLE  hpattern  ) 

パタンマスクの除去

グレイサーチパタン hpattern から、パタンマスクを除去します。

引数:
[in,out] hpattern グレイサーチパタンオブジェクト
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 引数異常
F_ERR_INVALID_OBJECT パタンオブジェクト以外が渡された,またはオブジェクトがNULL
F_ERR_NOMEMORY メモリ不足
F_ERR_GS_NO_CONTRAST パタン画像に情報が足りないため、パタンにならない。 (==画像の濃度分散が0.0になる)
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_gs2_pattern_rotate ( FHANDLE  hpattern,
INT  rot_angle,
INT  clip_width,
INT  clip_height,
INT  rotate_method,
FHANDLE *  rotate_pattern 
)

回転パターンの生成

作成済みのパターンを参考にして回転処理を行い、新しい回転済みのパターンを生成します。
rot_angle に指定する角度はdegreeの10倍値です。
clip_width, clip_height は回転パターンの大きさに上限を設けるものです。 特に問題のない限り I32_MAX を指定してください。 パターンを回転した結果サーチウインドウより大きくなってサーチ不能になるような場合に使用します。
不要になったパターンは必ず fnFIE_free_object() で解放してください。

引数:
[in] hpattern 参考にするパターン
[in] rot_angle 回転角 degreeの10倍値
[in] clip_width 回転パターン幅の上限
[in] clip_height 回転パターン高さの上限
[in] rotate_method 回転の方法
  • 0 または 1 NN法
  • 2 bilinear法
[out] rotate_pattern 新たに作成する回転済みパターンへのポインタ
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足
F_ERR_INVALID_PARAM 引数異常
F_ERR_INVALID_OBJECT 入力オブジェクト異常
F_ERR_INVALID_IMAGE 入力したパターン内の画像が大きすぎる
F_ERR_GS_NO_CONTRAST パタン画像に情報が足りないため、パタンにならない。 (==画像の濃度分散が0.0になる)
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
clip_widthとclip_heightについて
回転パタンを作成すると、以下の図のようにパタン全体を含む矩形が新たなパタンとなり、周囲にマスクが追加されます。
gs2_pat_rotate1.png
しかし、パタンよりサーチウインドウが十分大きくない場合、回転した結果サーチウインドウからパタンがはみ出てサーチできなくなることがあります。
gs2_pat_rotate2.png
このような場合にclip_widthとclip_heightを指定すると生成される回転パタンの大きさに制限をかけることができ、サーチできるようになります。
gs2_pat_rotate3.png
パターンサイズについて
FIEグレイサーチパターンオブジェクトの生成時に23170x23170より大きな画像を用いて生成したパターンオブジェクトからは回転パターンを生成できません。

INT FVALGAPI fnFIE_gs2_pattern_get_image ( FHANDLE  hpattern,
FHANDLE *  himage 
)

パターン画像を取得する

パターン画像を取得します。
パターン画像が不要になったら必ず fnFIE_free_object() で解放してください。

引数:
[in] hpattern グレイサーチパターンオブジェクト
[out] himage パタン画像 ( type: uc8 ) himage はNULLで初期化してから引数に渡してください。
戻り値:
F_ERR_INVALID_PARAM 引数異常
F_ERR_INVALID_OBJECT パタンでないオブジェクトが渡された
F_ERR_NOMEMORY メモリ不足
F_ERR_NONE 正常終了
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
注意:
取得した画像は参照専用とし、濃度値を書き換えないでください。 パターン画像が直接変更されてしまい問題が発生します。 読み出し以外の処理をしたい場合は複製を作ってから処理してください。

INT FVALGAPI fnFIE_gs2_pattern_get_mask ( FHANDLE  hpattern,
FHANDLE *  himage 
)

マスク画像を取得する

マスク画像の複製を取得します。マスクがない場合、エラーが返ります。
マスク画像が不要になったら必ず fnFIE_free_object() で解放してください。

引数:
[in] hpattern グレイサーチパターンオブジェクト
[out] himage マスク画像 ( type: bin ) himage はNULLで初期化してから引数に渡してください。
戻り値:
F_ERR_INVALID_PARAM 引数異常またはマスクが存在しない
F_ERR_INVALID_OBJECT オブジェクト異常
F_ERR_NONE 正常終了
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_gs2_pattern_get_comp_filter ( FHANDLE  hpattern,
enum f_comp_filter filter 
)

圧縮フィルタ種別の取得

引数:
[in] hpattern グレイサーチパターンオブジェクト
[out] filter 圧縮フィルタ種別
戻り値:
F_ERR_INVALID_PARAM 引数異常
F_ERR_INVALID_OBJECT パタン以外のオブジェクトが渡された
F_ERR_NONE 正常終了
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_gs2_pattern_get_offset ( FHANDLE  hpattern,
INT *  x,
INT *  y 
)

通知座標オフセットの取得

引数:
[in] hpattern グレイサーチパターンオブジェクト
[out] x 水平方向通知座標オフセット(100倍値)
[out] y 垂直方向通知座標オフセット(100倍値)
戻り値:
F_ERR_INVALID_PARAM 引数異常
F_ERR_INVALID_OBJECT パタン以外のオブジェクトが渡された
F_ERR_NONE 正常終了
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_gs2_pattern_set_offset ( FHANDLE  hpattern,
INT  x,
INT  y 
)

通知座標オフセットの設定

引数:
[in,out] hpattern グレイサーチパターンオブジェクト
[in] x 水平方向通知座標オフセット(100倍値)
[in] y 垂直方向通知座標オフセット(100倍値)
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT パタン以外のオブジェクトが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_gs2_pattern_set_comp_filter ( FHANDLE  hpattern,
enum f_comp_filter  filter 
)

圧縮フィルタの変更

圧縮フィルタの種別を変更し、パターンの再構築を行います。

引数:
[in,out] hpattern グレイサーチパターンオブジェクト
[in] filter 圧縮フィルタの種別
  • F_COMP_MODE_SMOOTH 通常 2x2(平均)フィルタ 特に問題なければこれを指定
  • F_COMP_MODE_MIN 最小値フィルタ パタンが黒い細線で構成されているような場合に指定
  • F_COMP_MODE_MAX 最大値フィルタ パタンが白い細線で構成されているような場合に指定
  • F_COMP_MODE_AVERAGE2 再平均フィルタ パタンにカメラノイズが多い場合に指定
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足
F_ERR_INVALID_PARAM 引数異常
F_ERR_INVALID_OBJECT オブジェクト異常
F_ERR_GS_NO_CONTRAST パタン画像の分散が0になるため、パタンにならない。
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_gs2_pattern_get_comp_image ( FHANDLE  hpattern,
INT  unit,
FHANDLE *  himage 
)

圧縮画像を取得する

パターン画像を指定した圧縮度で取得します。
パターン画像が不要になったら必ず fnFIE_free_object() で解放してください。

引数:
[in] hpattern グレイサーチパターンオブジェクト
[in] unit 圧縮度( 0 〜 9 )
[out] himage パタン画像 ( type: uc8 ) himage はNULLで初期化してから引数に渡してください。
戻り値:
F_ERR_INVALID_PARAM 引数異常、または指定した圧縮度に該当するパタン画像がない
F_ERR_INVALID_OBJECT パタンでないオブジェクトが渡された
F_ERR_NOMEMORY メモリ不足
F_ERR_NONE 正常終了
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_gs2_pattern_get_image()


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