【HALCON】query_contour_attribs_xld 関数について - XLD輪郭の属性クエリ

【HALCON】query_contour_attribs_xld 関数について - XLD輪郭の属性クエリ

2024-09-12

2024-09-12

HALCONquery_contour_attribs_xld関数は、XLD(Extended Line Description)形式の輪郭に関連する属性情報を取得するためのツールです。XLD輪郭は、サブピクセル精度で形状を表現できる高精度な輪郭データ形式で、画像解析において非常に重要な役割を果たします。この関数を使用することで、XLD輪郭の属性情報を確認し、画像処理や形状解析に必要なデータを取得できます。

query_contour_attribs_xld 関数の概要

query_contour_attribs_xldは、XLD形式の輪郭に関するさまざまな属性情報をクエリするための関数です。XLD輪郭は、通常のピクセル精度を超えてサブピクセル精度でオブジェクトの輪郭を表現できるため、より正確な形状分析が可能です。この関数を使用することで、XLD輪郭に関連する属性(例えば、曲率、方向、長さなど)を取得し、輪郭の特徴を解析できます。

関数の基本構文

query_contour_attribs_xld(Contour, AttribNames)
  • Contour
    XLD形式の輪郭オブジェクト。
  • AttribNames
    取得される属性名のリスト(出力)。

この関数は、指定されたXLD輪郭に関連する属性の名前をリストとして取得します。これにより、XLD輪郭が持つ属性を確認し、次の解析ステップに進むための準備が整います。

使用方法

以下は、query_contour_attribs_xldを使用してXLD輪郭の属性名を取得する基本的な例です。

* 画像の読み込み
read_image(Image, 'sample_image.png')

* XLD輪郭の抽出
edges_sub_pix(Image, EdgesXLD, 'canny', 1, 20, 40)

* XLD輪郭の属性情報を取得
query_contour_attribs_xld(EdgesXLD, AttribNames)

* 属性名を表示
for i := 0 to |AttribNames| - 1 by 1
    disp_message(WindowHandle, 'Attribute: ' + AttribNames[i], 'window', 12, 12 + i * 20, 'black', 'true')
endfor

この例では、画像から抽出されたXLD輪郭EdgesXLDに対して、関連する属性情報を取得し、その属性名を表示しています。これにより、輪郭が持つ属性のリストを確認できます。

応用例

query_contour_attribs_xldは、次のようなシナリオで使用されます。

  • XLD輪郭の特徴解析
    XLD輪郭が持つ曲率や方向などの属性を取得し、さらに詳細な形状解析を行います。

  • 形状フィルタリング
    取得した属性情報を基に、特定の属性を持つ輪郭のみを抽出したり、フィルタリングを行います。

  • 形状認識や物体検出
    XLD輪郭の属性を調べ、特定のパターンや特徴に基づいて物体の認識や検出を行います。

具体例

以下は、XLD輪郭の属性を取得し、その中でも曲率情報を利用して、曲率が一定の範囲内にある輪郭をフィルタリングする具体的な例です。

* 画像の読み込み
read_image(Image, 'sample_image.png')

* XLD輪郭の抽出
edges_sub_pix(Image, EdgesXLD, 'canny', 1, 20, 40)

* XLD輪郭の属性情報を取得
query_contour_attribs_xld(EdgesXLD, AttribNames)

* 曲率情報が利用可能か確認し、フィルタリング
if ('curvature' in AttribNames)
    curvature_xld(EdgesXLD, Curvature)
    Threshold := 0.05  * 曲率のしきい値
    select_contours_xld(EdgesXLD, FilteredContours, 'curvature', Threshold, 1.0, -1, -1)
    disp_message(WindowHandle, 'Filtered Contours based on Curvature', 'window', 12, 12, 'black', 'true')
    dev_display(FilteredContours)
endif

このコードでは、XLD輪郭から曲率情報を取得し、その曲率に基づいて輪郭をフィルタリングしています。特定のしきい値以上の曲率を持つ輪郭のみを抽出し、表示しています。

まとめ

HALCONquery_contour_attribs_xld関数は、XLD輪郭に関連する属性情報をクエリし、輪郭の特徴を解析するための重要なツールです。XLD輪郭の持つ属性を確認することで、形状解析や物体検出をより高精度に行うことが可能になります。この関数は、XLD輪郭の特徴を活用して、さまざまな画像処理タスクを効率的に進める際に役立ちます。

Recommend