Badge Measurement

目的

課題は2つのバッジ取り付け穴の中心間の距離を測定することです。

入力

バッジの画像。オブジェクトの位置と向きは可変です。

出力

取り付け穴間の計算された距離。

ヒント

オブジェクトの位置は可変です。オブジェクトを見つけるためにブロブ解析の手法を使用できます。この方法はテンプレートマッチングを行うよりも速い場合があります。

オブジェクトの向きに依存しない測定を行うために、オブジェクトの位置に関連する2D座標系を準備する必要があります。バッジのバウンディング矩形を使用して基準の2D座標系を作成します。

取り付け穴の正確な位置を見つけるために形状フィッティングの手法を使用します。

接続のラベル付けについては こちらを参照ください。

Solution (AVS)

  1. Workspace ExplorerExamplesワークスペースを開き、フィルムストリップウィンドウでBadgeデータセットを選択します。ImageチャンネルをACQUIREセクションにドラッグします。

  2. バッジを背景から抽出するために、ThresholdToRegionフィルターをPROCESSセクションに追加します。

    • 暗いオブジェクトのみを選択するために、inMaxValue140.0に設定します。
    • inMinValueAutoに設定します。このステップでは、色の下限を削除します。
  3. 単一のオブジェクトが選択されているため、追加のフィルタリングステップは必要ありません。RegionBoundingRectangle_OrNilフィルターを追加します。

  4. バッジのバウンディング矩形は水平または垂直の向きを持つことができます。さらなる測定を行うためには、向きを一定にする必要があります。NormalizeRectangleOrientationフィルターを追加し、inRectangleOrientationHorizontalに設定します。

  5. 正規化された矩形を使用して新しい参照システムを作成するために、CreateCoordinateSystemFromRectangleフィルターを追加します。

  6. 2つのFitCircleToEdgesフィルターを追加します。入力画像と、前に作成したCoordinateSystem2DCreateCoordinateSystemFromRectangleから接続します。

  7. inFittingFieldsを設定して取り付け穴を見つけます。

  8. PointToPointDistanceフィルターを使用して、見つかった円間の距離を計算します。

  9. 新しいプレビュウウィンドウで見つかった距離を表示します。

マクロフィルターMainが測定を行います。

使用したフィルタ

アイコン 名前 説明
RegionBoundingRectangle_OrNil 領域を含む最小の矩形を計算します。領域が空の場合はNILを返します。
CreateCoordinateSystemFromRectangle RegionBoundingRectangleのようなフィルターからオブジェクトの配置を定義するために最もよく使用されます。
PointToPointDistance 2点間の距離を測定します。
ThresholdToRegion 顕著な明るさによって定義できるオブジェクトの領域の抽出。
FitCircleToEdges 粗い位置が事前にわかっている円形のオブジェクトや穴を正確に検出します。

その他の資料