【HALCON】gen_circle 関数について - 円の生成
2024-08-22
2024-08-22
gen_circle 関数とは
gen_circle
関数は、指定された中心座標と半径に基づいて1つまたは複数の円形領域を生成します。この関数は、円を描画したり、画像内の特定の領域を選択したりする際に使用されます。
使用方法
gen_circle
関数の基本的な構文は以下の通りです。
gen_circle(Circle, Row, Column, Radius)
Circle
: 生成される円形領域Row
: 円の中心のY座標(行)Column
: 円の中心のX座標(列)Radius
: 円の半径
具体例
以下に、gen_circle
関数を使用して円形領域を生成する具体例を示します。
read_image(Image, 'fabrik')
gen_circle(Circle, 300.0, 200.0, 150.5)
reduce_domain(Image, Circle, Mask)
dev_clear_window()
dev_display(Mask)
この例では、中心座標(300.0, 200.0)に半径150.5の円形領域を生成し、その領域内に限定して画像を表示しています。
パラメータの詳細
-
Row / Column
: 円の中心座標を指定します。これらの値は実数または整数で表され、複数の円を生成する場合はタプル形式で渡すことができます。 -
Radius
: 円の半径を指定します。この値も実数または整数で表され、同様にタプル形式で複数の円を生成することが可能です。Radius
は正の値である必要があります。
注意点
gen_circle
関数では、生成される円が内部的に調整され、対称性を保つように設定されます。例えば、整数の半径を指定すると、円の直径が偶数になります。このため、円の中心は内部的に最も近い0.5単位の値に調整されます。一方、半径が1.5や2.5のような奇数の場合、円の中心は整数座標に調整されます。
また、円が画像の端を超えた場合、set_system('clip_region', 'true')
を使用すると、画像領域内に収まる部分のみが生成されます。
パフォーマンスと並列化
gen_circle
関数は、HALCONのマルチスレッド処理に対応しており、複数の円を効率的に生成できます。円の半径が大きい場合、円の生成に必要な計算時間は半径に比例して増加します。
まとめ
gen_circle
関数は、指定した中心座標と半径に基づいて円形領域を生成する便利なツールです。この関数は、画像の一部を円形にマスクしたり、特定の領域を強調表示する場合などに役立ちます。複数の円を同時に生成できる柔軟性も備えています。