【HALCON】measure_thresh 関数について - 閾値によるエッジの位置測定

【HALCON】measure_thresh 関数について - 閾値によるエッジの位置測定

2024-09-04

2024-09-04

HALCONmeasure_thresh関数は、指定した閾値に基づいて画像内のエッジを検出し、その位置を正確に測定するためのツールです。エッジ検出は、製品の寸法測定や形状解析において重要な役割を果たし、特に工業製品の検査や品質管理で広く利用されています。この関数は、エッジの強度に基づいて閾値を設定し、その閾値を超える部分をエッジとして検出するため、対象物の輪郭やエッジを精度高く検出することが可能です。

measure_thresh 関数の概要

measure_thresh関数は、画像内で指定された閾値に基づいてエッジの位置を検出し、その位置を測定します。この手法により、エッジ検出に必要な閾値をユーザーが設定できるため、様々な画像や対象物に対して柔軟に対応可能です。製品のエッジを検出し、その位置や寸法を測定することで、製造業や品質管理において高精度な寸法検査が行えます。

使用方法

基本的なmeasure_thresh関数の使用方法は以下の通りです。

measure_thresh(Image, MeasureHandle, Threshold, Transition, Select, RowEdge, ColumnEdge)
  • Image
    測定対象の入力画像。
  • MeasureHandle
    エッジ検出を行うための測定ハンドル(例えば、gen_measure_rectangle2で生成)。
  • Threshold
    エッジ検出に使用する閾値。
  • Transition
    検出するエッジの極性(‘all’, ‘positive’, ‘negative’)。
  • Select
    検出されたエッジの選択基準(‘all’, ‘first’, ‘last’, ‘max_abs’など)。
  • RowEdge, ColumnEdge
    検出されたエッジの位置(出力)。

具体例

以下に、measure_thresh関数を使用して、画像内のエッジ位置を検出し、その座標を表示する例を示します。

* 画像を読み込む
read_image(Image, 'example_image.png')

* 測定用の領域を設定
gen_measure_rectangle2(150, 150, 0, 100, 20, ImageWidth, ImageHeight, 'nearest_neighbor', MeasureHandle)

* 閾値によるエッジ検出を実行
Threshold := 50
Transition := 'all'
Select := 'first'
measure_thresh(Image, MeasureHandle, Threshold, Transition, Select, RowEdge, ColumnEdge)

* 結果を表示
disp_message(WindowHandle, 'Edge Position: Row=' + RowEdge + ', Column=' + ColumnEdge, 'window', 12, 12, 'black', 'true')

この例では、example_image.pngという画像内で閾値50に基づいてエッジを検出し、エッジの位置をRowEdgeColumnEdgeとして取得しています。これにより、エッジの位置が可視化され、測定結果を確認することができます。

応用例

measure_thresh関数は、以下のような応用シーンで利用されます。

  • 製品の寸法測定
    工業製品のエッジ位置を閾値に基づいて測定し、正確な寸法検査を行います。

  • 品質管理
    製造ラインにおいて、製品のエッジ検出により、製造品が設計通りに作られているかを確認し、品質を管理します。

  • 形状解析
    物体の形状をエッジ検出により解析し、その形状や寸法が指定の基準に合っているかを確認します。

まとめ

HALCONmeasure_thresh関数は、閾値に基づいて画像内のエッジを正確に検出し、その位置を測定するためのツールです。この関数を使用することで、製品のエッジ検出や形状解析が簡単かつ精度高く行え、製造現場での寸法測定や品質管理において非常に有用です。特に、エッジの閾値をユーザーが柔軟に設定できるため、様々な条件に対応できるのが特徴です。

Recommend