【HALCON】union_collinear_contours_xld 関数について - 直線上の輪郭の統合

【HALCON】union_collinear_contours_xld 関数について - 直線上の輪郭の統合

2024-08-21

2024-08-21

union_collinear_contours_xld 関数とは

HALCON の union_collinear_contours_xld 関数は、同一直線上にあるとみなされる XLD 輪郭を統合するために使用されます。典型的には、エッジ抽出やライン検出において、局所的な低コントラストにより分断された輪郭や、接続されるべきラインを統合する際に役立ちます。

使用例

以下は、union_collinear_contours_xld を使用して輪郭を統合する例です。

* 輪郭の抽出と統合
read_image(Image, 'fabrik')
edges_sub_pix(Image, Edges, 'canny', 1.0, 20, 40)
segment_contours_xld(Edges, Contours, 'lines', 5, 10, 2)
union_collinear_contours_xld(Contours, UnionContours, 10.0, 1.0, 2.0, 0.1, 'attr_keep')
dev_display(UnionContours)

この例では、まずエッジを抽出し、その後輪郭を分割しています。最後に union_collinear_contours_xld 関数を使って、同一直線上にある輪郭を統合しています。

パラメータの詳細

  • Contours(入力オブジェクト)
    統合対象の XLD 輪郭。

  • UnionContours(出力オブジェクト)
    統合された XLD 輪郭が返されます。

  • MaxDistAbs(入力パラメータ)
    2つの輪郭間の最大許容ギャップの絶対距離を定義します。デフォルト値は 10.0 です。

  • MaxDistRel(入力パラメータ)
    基準輪郭の長さに対するギャップの相対距離を定義します。デフォルト値は 1.0 です。

  • MaxShift(入力パラメータ)
    基準輪郭の回帰線に対する2つ目の輪郭の最大距離を定義します。

  • MaxAngle(入力パラメータ)
    2つの輪郭の回帰線間の最大許容角度を定義します。デフォルト値は 0.1(ラジアン)です。

  • Mode(入力パラメータ)
    輪郭の属性を保持するかどうかを制御します。‘attr_keep’(属性保持)または ‘attr_forget’(属性を無視)のいずれかを指定します。

適用範囲

この関数は、低コントラストやノイズの影響で分断されたエッジやラインを統合し、全体として意味のあるエッジやラインを再構成するために使用されます。

まとめ

union_collinear_contours_xld 関数を使うことで、同一直線上にある輪郭を統合し、画像内のギャップを埋めることができます。エッジ検出やライン検出の後処理に有効で、連続した形状を再構築するために非常に役立つ関数です。

Recommend