【HALCON】fit_rectangle2_contour_xld 関数について - XLD輪郭の矩形フィッティング
2024-09-07
2024-09-07
HALCON
のfit_rectangle2_contour_xld
関数は、XLD輪郭に基づいてサブピクセル精度で回転矩形をフィッティングするための強力なツールです。XLD(Extended Line Description)は、HALCONで使用される高度な輪郭表現であり、この関数を使うことで物体の正確な形状や寸法を測定することが可能です。工業検査や精密な形状解析において、矩形オブジェクトの検出と解析に役立ちます。
fit_rectangle2_contour_xld 関数の概要
fit_rectangle2_contour_xld
関数は、XLD輪郭に基づいて回転矩形(任意の角度の矩形)をサブピクセル精度でフィッティングします。フィッティングとは、与えられたデータに最も適合する矩形のパラメータ(位置、角度、寸法など)を計算するプロセスを指します。この関数を使うことで、矩形オブジェクトの位置や角度、寸法を高精度に特定できます。
基本的な使用方法
fit_rectangle2_contour_xld
関数の基本的な構文は以下の通りです。
fit_rectangle2_contour_xld(Contours, 'regression', -1, 0, 0, 3, 2, Row, Column, Phi, Length1, Length2)
Contours
フィッティングするXLD輪郭。'regression'
使用するフィッティングアルゴリズム(例として回帰分析法を指定しています)。-1
すべての輪郭点を使用する場合に指定。0
使用しないオプションのパラメータ。3
フィッティング時の最大繰り返し数。2
サブピクセル精度のしきい値。Row
/Column
フィッティングされた矩形の中心の行・列座標。Phi
矩形の回転角(ラジアン単位)。Length1
矩形の長い方の辺の長さ。Length2
矩形の短い方の辺の長さ。
具体例
以下に、fit_rectangle2_contour_xld
関数を使用して回転矩形をフィッティングする具体例を示します。
* 画像の読み込み
read_image(Image, 'rectangle_image.png')
* エッジの検出とXLD輪郭の抽出
edges_sub_pix(Image, Edges, 'canny', 1.0, 20, 40)
* XLD輪郭に基づいて回転矩形をフィッティング
fit_rectangle2_contour_xld(Edges, 'regression', -1, 0, 0, 3, 2, Row, Column, Phi, Length1, Length2)
* 結果の表示
disp_message(WindowHandle, 'Center: (' + Row + ', ' + Column + ')', 'window', 12, 12, 'black', 'true')
disp_message(WindowHandle, 'Length1: ' + Length1 + ', Length2: ' + Length2, 'window', 30, 12, 'black', 'true')
この例では、rectangle_image.png
という画像に対してエッジを検出し、XLD輪郭を抽出した後、矩形フィッティングを行っています。フィッティングされた矩形の中心座標と、長辺および短辺の長さが出力されます。
応用例
fit_rectangle2_contour_xld
関数は、矩形状の物体を正確に検出したいシーンで広く利用されます。
-
工業製品の検査
矩形の寸法や形状が重要な部品の検査に使用されます。例えば、矩形の金属板やパッケージの外形寸法を高精度で測定し、基準との一致を確認するために使われます。 -
ロボットビジョン
ロボットが物体を把握するために、対象の矩形オブジェクトの正確な位置や角度を知る必要がある場合、この関数でフィッティングされた矩形情報を利用できます。 -
形状解析
矩形の位置や寸法、回転角度などを正確に計測することで、物体の形状特性を解析することができます。サブピクセル精度により、非常に細かい差異も捉えることが可能です。
まとめ
HALCON
のfit_rectangle2_contour_xld
関数は、XLD輪郭を基にサブピクセル精度で回転矩形をフィッティングするための強力なツールです。特に、工業検査やロボットビジョン、精密な形状解析が必要なシーンにおいて、矩形オブジェクトの寸法や位置、角度を高精度に測定することが可能です。サブピクセル精度でのフィッティングにより、ピクセル単位以上の精度が求められる場面で効果を発揮します。