【HALCON】measure_pos 関数について - 画像内のエッジ位置検出
2024-09-04
2024-09-04
HALCON
のmeasure_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
という画像内でエッジ検出を行い、エッジの位置をRow
とColumn
で取得しています。これらの座標は、ウィンドウに表示され、エッジの位置を可視化できます。
応用例
measure_pos
関数は、以下のような応用シーンで利用されます。
-
製品の寸法検査
工業製品のエッジ位置を正確に検出し、製造ラインでの寸法検査に使用されます。 -
位置決め
機械部品や製品の位置決めが必要な場面で、エッジ検出による精度の高い位置決めが可能です。 -
形状解析
物体のエッジ位置を検出し、その形状や寸法を解析する用途に適しています。
まとめ
HALCON
のmeasure_pos
関数は、画像内でエッジの位置を検出し、その座標を計測するための強力なツールです。製品の寸法検査や位置決め、形状解析において、エッジの位置を正確に測定することができ、工業用の画像処理システムにおいて不可欠な機能を提供します。特に、製造ラインや品質管理において、精密な測定が求められる場面で広く利用されています。