Badge Measurement
目的
課題は2つのバッジ取り付け穴の中心間の距離を測定することです。
入力
バッジの画像。オブジェクトの位置と向きは可変です。
出力
取り付け穴間の計算された距離。
ヒント
オブジェクトの位置は可変です。オブジェクトを見つけるためにブロブ解析の手法を使用できます。この方法はテンプレートマッチングを行うよりも速い場合があります。
オブジェクトの向きに依存しない測定を行うために、オブジェクトの位置に関連する2D座標系を準備する必要があります。バッジのバウンディング矩形を使用して基準の2D座標系を作成します。
取り付け穴の正確な位置を見つけるために形状フィッティングの手法を使用します。
接続のラベル付けについては こちらを参照ください。
Solution (AVS)
-
Workspace ExplorerでExamplesワークスペースを開き、フィルムストリップウィンドウでBadgeデータセットを選択します。ImageチャンネルをACQUIREセクションにドラッグします。
-
バッジを背景から抽出するために、ThresholdToRegionフィルターをPROCESSセクションに追加します。
- 暗いオブジェクトのみを選択するために、inMaxValueを140.0に設定します。
- inMinValueをAutoに設定します。このステップでは、色の下限を削除します。
-
単一のオブジェクトが選択されているため、追加のフィルタリングステップは必要ありません。RegionBoundingRectangle_OrNilフィルターを追加します。
-
バッジのバウンディング矩形は水平または垂直の向きを持つことができます。さらなる測定を行うためには、向きを一定にする必要があります。NormalizeRectangleOrientationフィルターを追加し、inRectangleOrientationをHorizontalに設定します。
-
正規化された矩形を使用して新しい参照システムを作成するために、CreateCoordinateSystemFromRectangleフィルターを追加します。
-
2つのFitCircleToEdgesフィルターを追加します。入力画像と、前に作成したCoordinateSystem2DをCreateCoordinateSystemFromRectangleから接続します。
-
inFittingFieldsを設定して取り付け穴を見つけます。
-
PointToPointDistanceフィルターを使用して、見つかった円間の距離を計算します。
-
新しいプレビュウウィンドウで見つかった距離を表示します。
マクロフィルターMainが測定を行います。
使用したフィルタ
アイコン | 名前 | 説明 |
---|---|---|
RegionBoundingRectangle_OrNil | 領域を含む最小の矩形を計算します。領域が空の場合はNILを返します。 | |
CreateCoordinateSystemFromRectangle | RegionBoundingRectangleのようなフィルターからオブジェクトの配置を定義するために最もよく使用されます。 | |
PointToPointDistance | 2点間の距離を測定します。 | |
ThresholdToRegion | 顕著な明るさによって定義できるオブジェクトの領域の抽出。 | |
FitCircleToEdges | 粗い位置が事前にわかっている円形のオブジェクトや穴を正確に検出します。 |
その他の資料
- Blob Analysis - ブロブ分析手法について詳しく説明します。
- Local Coordinate Systems - 座標系の使用に関する基本的な概念について説明しています。
- Shape Fitting - シェイプ フィッティング テクニックの使用法を紹介します。
- Shape Fitting Filter Group - List of all filters used to perform Shape Fitting.