【HALCON】symm_difference_closed_contours_xld 関数について - 閉じたXLD輪郭の対称差演算

【HALCON】symm_difference_closed_contours_xld 関数について - 閉じたXLD輪郭の対称差演算

2024-09-10

2024-09-10

HALCONのsymm_difference_closed_contours_xld関数は、2つの閉じたXLD(Extended Line Description)輪郭間の対称差を計算し、その差分を抽出するための関数です。対称差は、両方の輪郭に共通する部分を除き、どちらか一方にしか存在しない領域を抽出することを意味します。この関数は、形状比較や異常検出において役立ち、2つの異なる物体間の違いを解析する際に使用されます。

symm_difference_closed_contours_xld 関数の概要

symm_difference_closed_contours_xld関数は、2つの閉じたXLD輪郭の対称差を計算して、新しいXLD輪郭として出力します。この処理により、2つの輪郭のどちらか一方にしか含まれていない部分を抽出し、形状の違いや変化を明確にできます。共通部分は排除され、差分が強調されます。

基本的な構文

symm_difference_closed_contours_xld(Contours1, Contours2, SymmDifferenceContours)
  • Contours1
    最初の入力XLD輪郭(閉じた輪郭)。
  • Contours2
    2番目の入力XLD輪郭(閉じた輪郭)。
  • SymmDifferenceContours
    出力される対称差のXLD輪郭。

具体例

以下は、symm_difference_closed_contours_xld関数を使用して2つの閉じたXLD輪郭の対称差を計算する例です。

* 輪郭1と輪郭2の生成
gen_circle_contour_xld(Contour1, 100, 100, 50, 0, 6.28, 'positive', 1.0)
gen_rectangle2_contour_xld(Contour2, 100, 100, 30, 40, 0)

* 輪郭の対称差を計算
symm_difference_closed_contours_xld(Contour1, Contour2, SymmDifferenceContours)

* 結果の表示
disp_xld(SymmDifferenceContours, WindowHandle)

この例では、Contour1として円形のXLD輪郭、Contour2として矩形のXLD輪郭を生成し、symm_difference_closed_contours_xld関数で両者の対称差を計算しています。結果として、2つの輪郭間の差分が新しいXLD輪郭としてSymmDifferenceContoursに格納され、表示されます。

結果の輪郭

  • 円形と矩形の重ならない部分が結果として抽出されます。
  • 両者に共通する部分は排除され、それぞれの形状に固有の領域のみが強調されます。

応用例

symm_difference_closed_contours_xld関数は、以下のような場面で使用されます。

  • 製品の異常検出
    正常な製品の輪郭と不良品の輪郭を比較し、異常部分を抽出することで、欠陥や変形の検出に役立ちます。

  • 形状比較
    2つの異なる形状を比較して、どの部分が異なるのかを視覚的に確認する際に使用されます。特に、製造プロセスや品質管理で重要です。

  • 変化検出
    時間の経過による物体の形状変化や、加工後の形状の違いを解析し、加工ミスや劣化を特定するために使用されます。

まとめ

HALCONのsymm_difference_closed_contours_xld関数は、2つの閉じたXLD輪郭の対称差を計算し、形状の違いや変化を強調するための強力なツールです。この関数を使用することで、形状比較や異常検出、製品の品質管理における輪郭解析が効率的に行えます。2つの物体間の違いを明確にし、製造プロセスや品質検査での活用が期待されます。

Recommend