【HALCON】select_shape 関数について - 形状フィーチャーによるリージョン選択ガイド
2024-08-20
2024-08-20
HALCONのselect_shape 関数は、画像処理において形状フィーチャーを基にリージョンを選択するための強力なツールです。この関数を使用すると、特定の形状条件を満たすリージョンのみを選択することが可能です。この記事では、select_shape 関数の使い方とその詳細な動作について説明します。
関数の概要
select_shape 関数は、入力されたリージョンの形状フィーチャーを計算し、指定された条件を満たすリージョンのみを選択して出力します。この関数を使用することで、リージョンの大きさや形状に基づいて、特定の物体のみを効率的に抽出することができます。
関数のシグネチャ
select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : )
Regions:
入力オブジェクト。形状フィーチャーの検査対象となるリージョンの配列です。SelectedRegions:
出力オブジェクト。条件を満たすリージョンが格納されます。Features:
入力コントロール。選択に使用する形状フィーチャーを指定します。Operation:
入力コントロール。複数の形状フィーチャーを使用する場合の論理演算を指定します(andまたはor)。Min:
入力コントロール。指定されたフィーチャーの最小値を設定します。Max:
入力コントロール。指定されたフィーチャーの最大値を設定します。
使用できる形状フィーチャーの一覧
select_shape 関数で使用できる形状フィーチャーの一覧は以下の通りです:
area: オブジェクトの面積row: 重心の行インデックスcolumn: 重心の列インデックスwidth: リージョンの幅height: リージョンの高さratio: 幅と高さの比率row1: 左上隅の行インデックスcolumn1: 左上隅の列インデックスrow2: 右下隅の行インデックスcolumn2: 右下隅の列インデックスcircularity: 円形度compactness: コンパクトさcontlength: 輪郭の長さconvexity: 凸性rectangularity: 長方形度ra: 主軸の半径rb: 副軸の半径phi: 楕円の向きanisometry: 異方性bulkiness: 体積性struct_factor: 構造係数outer_radius: 最小外接円の半径inner_radius: 最大内接円の半径inner_width: 最大内接長方形の幅inner_height: 最大内接長方形の高さdist_mean: 境界から重心までの平均距離dist_deviation: 境界から重心までの距離のばらつきroundness: 丸みnum_sides: ポリゴンの辺の数connect_num: 接続成分の数holes_num: 穴の数area_holes: オブジェクトの穴の面積max_diameter: リージョンの最大直径orientation: リージョンの向きeuler_number: オイラー数rect2_phi: 最小外接長方形の向きrect2_len1: 最小外接長方形の長さrect2_len2: 最小外接長方形の幅moments_m11: 幾何モーメントmoments_m20: 幾何モーメントmoments_m02: 幾何モーメントmoments_ia: 幾何モーメントmoments_ib: 幾何モーメントmoments_m11_invar: 不変モーメントmoments_m20_invar: 不変モーメントmoments_m02_invar: 不変モーメントmoments_phi1: 幾何モーメント(相対的な不変モーメント)moments_phi2: 幾何モーメント(相対的な不変モーメント)moments_m21: 幾何モーメントmoments_m12: 幾何モーメントmoments_m03: 幾何モーメントmoments_m30: 幾何モーメントmoments_m21_invar: 不変モーメントmoments_m12_invar: 不変モーメントmoments_m03_invar: 不変モーメントmoments_m30_invar: 不変モーメントmoments_i1: セントラルモーメントmoments_i2: セントラルモーメントmoments_i3: セントラルモーメントmoments_i4: セントラルモーメントmoments_psi1: セントラルモーメント(不変)moments_psi2: セントラルモーメント(不変)moments_psi3: セントラルモーメント(不変)moments_psi4: セントラルモーメント(不変)
操作の選択
Operation パラメータは、複数の形状フィーチャーを使用する場合に、リージョンが選択される条件を指定します。
and: すべての指定されたフィーチャーが条件を満たすリージョンのみを選択します。or: 少なくとも1つのフィーチャーが条件を満たすリージョンを選択します。
使用例
以下は、select_shape 関数を使用して特定の形状フィーチャーに基づいてリージョンを選択する簡単な例です。
* 画像を読み込んでしきい値処理を実行
read_image(Image, 'monkey')
threshold(Image, Region, 128, 255)
connection(Region, ConnectedRegions)
* 面積と最大直径に基づいてリージョンを選択
select_shape(ConnectedRegions, Eyes, ['area', 'max_diameter'], 'and', [500, 30.0], [1000, 50.0])
* 選択されたリージョンを表示
dev_display(Eyes)
この例では、画像をしきい値処理してリージョンを抽出し、その中から面積と最大直径に基づいて目の部分に相当するリージョンを選択しています。
まとめ
select_shape 関数は、画像処理において形状に基づいてリージョンをフィルタリングするための非常に有用なツールです。例えば、オブジェクトの面積や直径、円形度などを条件に、特定の物体を正確に抽出することが可能です。