【HALCON】boundary 関数について - 領域の境界を計算する

【HALCON】boundary 関数について - 領域の境界を計算する

2024-08-21

2024-08-21

boundary 関数とは

HALCON の boundary 関数は、指定された領域の境界を計算し、その境界部分を新しい領域として返します。境界のタイプは、BoundaryType パラメータで指定でき、領域の内側、外側、または内側の充填された境界を取得することが可能です。

使用例

以下は、boundary 関数を使用して領域の境界を計算する簡単な例です。

#include "HalconCpp.h"
using namespace Halcon;

main()
{
  HWindow w;
  HRegion circ1 = HRegion::GenCircle(20, 10, 10.5);

  circ1.Display(w);
  w.Click();

  HRegion marg1 = circ1.Boundary("inner");
  w.SetColor("red");
  marg1.Display(w);
  w.Click();

  return(0);
}

この例では、円形領域を生成し、その内側の境界を赤色で表示しています。

パラメータの詳細

  • Region(入力オブジェクト)
    境界を計算する対象の領域です。

  • RegionBorder(出力オブジェクト)
    計算された境界が返されます。

  • BoundaryType(入力パラメータ)
    境界の種類を指定します。デフォルト値は inner です。

    • ‘inner’: 領域の内側境界
    • ‘inner_filled’: 内側境界(穴を無視)
    • ‘outer’: 領域の外側境界

パフォーマンスと並列処理

boundary 関数はマルチスレッド対応で、非排他型のオペレーターとして再入可能です。タプルレベルで自動並列化が行われ、効率的に複数の領域に対して境界の計算が行えます。

まとめ

boundary 関数を使用すると、領域の輪郭を効果的に抽出できます。内側、外側、または内側充填のオプションを使い分けることで、さまざまな解析や後処理に適した領域境界を取得できます。

Recommend