【HALCON】test_equal_obj 関数について - オブジェクトの等価性テスト

【HALCON】test_equal_obj 関数について - オブジェクトの等価性テスト

2024-09-10

2024-09-10

HALCONのtest_equal_obj関数は、2つの画像オブジェクトが等しいかどうかを比較するための関数です。この関数は、形状や内容が同一かを確認するために使用され、画像処理の結果が期待通りに得られているかを検証する際に役立ちます。また、異なるオブジェクト間の差分を検出することで、画像解析における処理結果の検証や品質管理に利用されます。

test_equal_obj 関数の概要

test_equal_obj関数は、2つの入力オブジェクトの内容や形状を比較し、それらが等しいかどうかを判定します。この等価テストは、画像オブジェクト間のピクセル値や形状情報を詳細に比較し、同一であればtrue、異なればfalseを返します。

基本的な構文

test_equal_obj(Object1, Object2, Equal)
  • Object1
    比較する最初の入力オブジェクトです。
  • Object2
    比較する2番目の入力オブジェクトです。
  • Equal
    オブジェクトが等しいかどうかの結果が返されるブール値です。trueならオブジェクトは等しく、falseなら異なります。

具体例

以下は、test_equal_obj関数を使用して2つの画像オブジェクトが等しいかどうかをテストする例です。

* 画像の読み込み
read_image(Image1, 'image1')
read_image(Image2, 'image2')

* オブジェクトが等しいかをテスト
test_equal_obj(Image1, Image2, Equal)

* 結果の表示
disp_message(WindowHandle, 'Objects Equal: ' + Equal, 'window', 12, 12, 'black', 'true')

この例では、2つの画像Image1Image2を読み込み、それらが等しいかをtest_equal_obj関数でテストしています。結果はEqualとしてブール値で返され、画像が等しい場合はtrue、異なる場合はfalseが表示されます。

実行結果

  • 等しいオブジェクト: Equal = true
  • 異なるオブジェクト: Equal = false

応用例

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

  • 画像処理結果の検証
    画像処理パイプラインの各ステップで、期待する結果が得られているかどうかを検証するために、処理前後の画像オブジェクトを比較します。

  • 品質管理
    製造業において、製品の画像が基準となる画像と一致しているかを確認し、異常や欠陥を検出するために使用されます。異なる場合は、差分を抽出して不良品を検出できます。

  • 差分検出
    2つの画像の差異を検出するために、等価テストを行い、一致しない場合にはその差分に基づいたさらなる解析が可能です。

まとめ

HALCONのtest_equal_obj関数は、2つの画像オブジェクトが形状や内容において等しいかを判定するための便利なツールです。この関数を使用することで、画像処理結果の検証や異常検出が簡単に行えます。画像間の差異を迅速に把握でき、品質管理やプロセスの最適化においても重要な役割を果たします。

Recommend