【HALCON】set_fuzzy_measure 関数について - ファジィ関数の指定
2024-08-21
2024-08-21
set_fuzzy_measure 関数とは
HALCON の set_fuzzy_measure
関数は、エッジ検出やエッジペアの検出において、ファジィ関数を設定するための重要な関数です。これにより、エッジのコントラストや位置、サイズなどの特徴に基づいてエッジ候補を評価し、選択することが可能になります。ファジィセットを適切に設定することで、エッジ検出の精度やロバスト性を向上させることができます。
使用例
以下は、set_fuzzy_measure
関数を使用して、エッジペアのサイズに基づくファジィ関数を設定する例です。
* ファジィ関数の使用例
gen_measure_rectangle2 (50, 100, 0, 200, 100, 512, 512, 'nearest_neighbor', MeasureHandle)
* ファジィ関数を作成
create_funct_1d_pairs ([0.7, 1.0, 1.3], [0.0, 1.0, 0.0], SizeFunction)
* ファジィ関数をスケーリング
transform_funct_1d (SizeFunction, [1.0, 0.0, 13.45, 0.0], TransformedFunction)
* ファジィ関数を設定
set_fuzzy_measure (MeasureHandle, 'size', SizeFunction)
* ファジィスコアに基づいてエッジペアを検出
fuzzy_measure_pairs (Image, MeasureHandle, 1, 30, 0.5, 'all', RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, RowEdgeCenter, ColumnEdgeCenter, FuzzyScore, IntraDistance, InterDistance)
この例では、矩形領域の測定オブジェクトを生成し、サイズに基づくファジィ関数を作成して、fuzzy_measure_pairs
関数でエッジペアを検出しています。
パラメータの詳細
-
MeasureHandle(入力パラメータ)
測定オブジェクトのハンドル。gen_measure_rectangle2
やgen_measure_arc
などで生成されます。 -
SetType(入力パラメータ)
ファジィセットのタイプを指定します。デフォルト値は'contrast'
です。指定できる値は、‘contrast’、‘gray’、‘position’、‘size’ などがあります。 -
Function(入力パラメータ)
ファジィ関数。create_funct_1d_pairs
などで生成された 1D 関数を指定します。
ファジィセットの種類
-
‘contrast’
エッジのコントラストを評価します。エッジペアの場合、両エッジのコントラストスコアの幾何平均が使用されます。 -
‘position’
エッジ候補の位置を評価します。基準点からの距離に基づいて計算されます。 -
‘size’
エッジペアの2つのエッジ間の距離を評価します。 -
‘gray’
エッジペア間の平均灰色値を評価します。
ファジィ関数の定義
ファジィ関数は、区分的線形関数として定義され、少なくとも2つの x 値と y 値のペアで構成されます。x 値はエッジの特徴を表し、y 値は対応する重みを表します。例えば、create_funct_1d_pairs
を使って以下のように定義します。
create_funct_1d_pairs ([0.0, 1.0, 2.0], [0.0, 1.0, 0.0], MyFunction)
まとめ
set_fuzzy_measure
関数を使用すると、エッジ検出やエッジペアの検出において柔軟で高度な評価基準を導入できます。これにより、特定の状況に応じた最適なエッジ検出を実現することが可能です。