【HALCON】measure_pos 関数について - 画像内のエッジ位置検出

【HALCON】measure_pos 関数について - 画像内のエッジ位置検出

2024-09-04

2024-09-04

HALCONmeasure_pos関数は、画像内のエッジ位置を検出し、その位置や特徴を計測するための強力なツールです。この関数を使うことで、画像の指定した範囲内でエッジを正確に検出し、物体の寸法や位置を測定することができます。エッジ検出は、製造ラインでの製品検査や位置決めにおいて不可欠であり、特に高精度な位置決定が求められる場面で非常に有用です。

measure_pos 関数の概要

measure_pos関数は、指定した領域内でエッジ検出を行い、そのエッジの位置や極性(明→暗、暗→明など)を計測します。エッジ検出にはガウスフィルタが用いられ、フィルタのパラメータを調整することで、エッジ検出の精度をカスタマイズできます。エッジ検出によって得られた位置データは、製品の寸法検査や物体の位置決定に役立ちます。

使用方法

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

measure_pos(Image, MeasureHandle, Sigma, Threshold, Transition, Select, Row, Column)
  • Image
    対象となる入力画像。
  • MeasureHandle
    エッジ検出を行うための測定ハンドル(gen_measure_rectangle2などで生成)。
  • Sigma
    エッジ検出に使用するガウスフィルタの標準偏差。
  • Threshold
    エッジ検出の閾値。
  • Transition
    検出するエッジの極性(‘all’, ‘positive’, ‘negative’)。
  • Select
    検出されたエッジの選択基準(‘all’, ‘first’, ‘last’, ‘max_abs’など)。
  • Row, Column
    検出されたエッジの位置(出力)。

具体例

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

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

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

* エッジ検出を実行
Sigma := 1.0
Threshold := 30
Transition := 'all'
Select := 'first'
measure_pos(Image, MeasureHandle, Sigma, Threshold, Transition, Select, Row, Column)

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

この例では、example_image.pngという画像内でエッジ検出を行い、エッジの位置をRowColumnで取得しています。これらの座標は、ウィンドウに表示され、エッジの位置を可視化できます。

応用例

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

  • 製品の寸法検査
    工業製品のエッジ位置を正確に検出し、製造ラインでの寸法検査に使用されます。

  • 位置決め
    機械部品や製品の位置決めが必要な場面で、エッジ検出による精度の高い位置決めが可能です。

  • 形状解析
    物体のエッジ位置を検出し、その形状や寸法を解析する用途に適しています。

まとめ

HALCONmeasure_pos関数は、画像内でエッジの位置を検出し、その座標を計測するための強力なツールです。製品の寸法検査や位置決め、形状解析において、エッジの位置を正確に測定することができ、工業用の画像処理システムにおいて不可欠な機能を提供します。特に、製造ラインや品質管理において、精密な測定が求められる場面で広く利用されています。

Recommend