【HALCON】measure_thresh 関数について - 閾値によるエッジの位置測定
2024-09-04
2024-09-04
HALCON
のmeasure_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に基づいてエッジを検出し、エッジの位置をRowEdge
とColumnEdge
として取得しています。これにより、エッジの位置が可視化され、測定結果を確認することができます。
応用例
measure_thresh
関数は、以下のような応用シーンで利用されます。
-
製品の寸法測定
工業製品のエッジ位置を閾値に基づいて測定し、正確な寸法検査を行います。 -
品質管理
製造ラインにおいて、製品のエッジ検出により、製造品が設計通りに作られているかを確認し、品質を管理します。 -
形状解析
物体の形状をエッジ検出により解析し、その形状や寸法が指定の基準に合っているかを確認します。
まとめ
HALCON
のmeasure_thresh
関数は、閾値に基づいて画像内のエッジを正確に検出し、その位置を測定するためのツールです。この関数を使用することで、製品のエッジ検出や形状解析が簡単かつ精度高く行え、製造現場での寸法測定や品質管理において非常に有用です。特に、エッジの閾値をユーザーが柔軟に設定できるため、様々な条件に対応できるのが特徴です。