【HALCON】create_aniso_shape_model_xld 関数について - XLD輪郭の各向異性形状モデル作成

【HALCON】create_aniso_shape_model_xld 関数について - XLD輪郭の各向異性形状モデル作成

2024-08-25

2024-08-25

HALCONcreate_aniso_shape_model_xld関数は、XLD輪郭データを基に、各向異性(異なる方向で異なるスケーリング)の形状モデルを作成するための関数です。このモデルは、スケーリングや回転が異なる物体を効率的に検出するために使用され、特に産業用の自動化や検査システムで役立ちます。

create_aniso_shape_model_xld関数の概要

この関数は、以下の処理を行います。

  • XLD輪郭からの形状モデル作成: 輪郭データ(XLD)を基に、各向異性スケーリングが可能な形状モデルを作成します。これにより、異なる方向でサイズが変化する物体にも対応可能です。
  • マッチング処理の最適化: スケーリングや回転の変化に対して高い柔軟性を持つ形状マッチングを実現します。

関数のシグネチャ

void create_aniso_shape_model_xld(HObject : Contours, HTuple : NumLevels, HTuple : AngleStart, HTuple : AngleExtent, HTuple : ScaleRMin, HTuple : ScaleRMax, HTuple : ScaleCMin, HTuple : ScaleCMax, HTuple : Optimization, HTuple : Metric, HTuple* : ModelID);
  • Contours
    入力されるXLD輪郭データ。
  • NumLevels
    ピラミッドレベルの数。
  • AngleStart
    角度の開始値。
  • AngleExtent
    角度の範囲。
  • ScaleRMin/ScaleRMax
    行方向のスケーリング範囲。
  • ScaleCMin/ScaleCMax
    列方向のスケーリング範囲。
  • Optimization
    モデルの最適化方法。
  • Metric
    マッチングに使用するメトリック。
  • ModelID
    出力されるモデルID。

使用例

以下の例では、HALCONcreate_aniso_shape_model_xld関数を使用して、XLD輪郭から各向異性形状モデルを作成します。

HObject XLDContours;
HTuple ModelID;

// XLD輪郭の読み込み
read_contour_xld_dxf(&XLDContours, "example_contour.dxf");

// 各向異性形状モデルの作成
create_aniso_shape_model_xld(XLDContours, 5, 0, 180, 0.5, 1.5, 0.5, 1.5, "none", "use_polarity", &ModelID);

このコードでは、XLD輪郭データを読み込み、各向異性形状モデルを作成しています。これにより、スケーリングと回転に対応する形状モデルが生成され、効率的なマッチングが可能になります。

応用例

create_aniso_shape_model_xld関数は、以下のような応用で使用されています。

  • 製品の品質管理
    異なる形状やサイズを持つ製品の検出や識別に使用されます。特に製造業における位置決めや検査システムで効果的です。

  • ロボットの位置決め
    形状の異なる物体を自動で検出し、正確に把握することで、ロボットアームによる作業の精度を向上させます。

まとめ

HALCONcreate_aniso_shape_model_xld関数は、XLD輪郭を基にした各向異性形状モデルを作成するための強力なツールです。形状の変化やスケーリングに対して柔軟に対応し、高精度なマッチング処理を実現します。

Recommend