【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つの物体間の違いを明確にし、製造プロセスや品質検査での活用が期待されます。