【HALCON】select_contours_xld 関数について - XLD輪郭の選別

【HALCON】select_contours_xld 関数について - XLD輪郭の選別

2024-08-30

2024-08-30

HALCONselect_contours_xld関数は、画像処理におけるXLD(eXtended Line Description)形式の輪郭を特定の基準に基づいてフィルタリングし、必要な輪郭を選択するためのツールです。この関数を使うことで、特定のサイズや形状に合った輪郭だけを抽出し、効率的な画像処理を行うことが可能になります。

select_contours_xld 関数の概要

select_contours_xldは、XLD形式の輪郭から指定した条件に合う輪郭だけを選択する関数です。輪郭の長さ、面積、閉じた輪郭かどうかなど、様々な基準で輪郭をフィルタリングできます。例えば、ノイズのような不要な輪郭を排除し、重要な形状情報を抽出するために役立ちます。

関数の構文

select_contours_xld(Contours, SelectedContours, 'Feature', Min, Max)
  • Contours
    入力されたXLD輪郭データ。
  • SelectedContours
    フィルタリングされた輪郭データ。
  • Feature
    選別基準(例:‘length’, ‘area’, ‘closed’)。
  • Min
    フィルタリング基準の最小値。
  • Max
    フィルタリング基準の最大値。

使用例

以下は、特定の長さのXLD輪郭のみを選別する例です。

* 画像を読み込み、エッジを抽出
read_image(Image, 'example_image.jpg')
edges_sub_pix(Image, Edges, 'canny', 1, 20, 40)

* 長さ100ピクセル以上の輪郭のみを選択
select_contours_xld(Edges, SelectedEdges, 'length', 100, 99999)

* 選ばれた輪郭を表示
disp_obj(SelectedEdges, WindowHandle)

この例では、select_contours_xldを使用して、長さが100ピクセル以上の輪郭だけを選択し、不要な短い輪郭を排除しています。これにより、対象物の輪郭を効率的に抽出できます。

主な選別基準

  • length
    輪郭の長さに基づいて選別します。
  • area
    輪郭が囲む面積に基づいて選別します。
  • closed
    閉じた輪郭のみを選ぶための基準です。

関数の応用シナリオ

  • エッジ検出後のフィルタリング: エッジ検出で得られた多数の輪郭の中から、特定の長さや形状に基づいて重要な輪郭を選び出します。
  • ノイズ除去: 短すぎる輪郭や面積が小さい輪郭をフィルタリングして、画像内のノイズを効果的に除去します。
  • 形状解析: 輪郭の形状や面積に基づいて、特定の対象物を選別します。

パラメータの説明

  • Feature
    輪郭を選別するための基準を指定します。主な基準にはlength(長さ)、area(面積)、closed(閉じた輪郭)が含まれます。
  • MinMax
    輪郭が選別される基準範囲を指定します。例えば、長さ100ピクセル以上の輪郭を選びたい場合、Minに100を、Maxには非常に大きな値(例:99999)を設定します。
  • ContoursSelectedContours
    Contoursには入力されるXLD輪郭、SelectedContoursには選別後の輪郭が格納されます。

結論

select_contours_xldは、画像処理におけるXLD輪郭をフィルタリングするための非常に便利なツールです。指定された基準に基づいて輪郭を選別することで、ノイズ除去や形状解析の精度が向上し、効率的な処理が実現可能です。例えば、エッジ検出後の処理や特定の対象物の選別にこの関数を利用することで、不要な輪郭を除去し、重要な形状情報を効率よく取得できます。

Recommend