Measuring the L-Pipe (l_pipe)

目的

このタスクは、L パイプの角度と幅を測定するアプリケーションを作成することです。

Input

L字管のイメージです。 オブジェクトの位置は、向きも含めて可変です。

Output

アプリケーションでは次の要素を測定する必要があります。

  1. Realタイプの角(青)
  2. Realタイプのパイプ幅(紫)

ヒント

これは、オブジェクトの位置に合わせて測定を実行する一般的なケースです。

最初のステップでは、オブジェクトの位置を特定する必要があります。この目的には、LocateSingleObject_Edges1フィルターをお勧めします。 次に、FitSegmentToEdgesなどのShape Fittingフィルターを使用して、オブジェクトの興味深い輪郭を検出する必要があります。

これらのフィルターの「Alignmen'」入力をTemplate Matching(outObject.Alignment) の結果と適切に接続することが重要です。 最後に、AngleBetweenSegmentsを使用して測定値を抽出できます。

パイプ幅の測定は、MeasureObjectWidthフィルターを使用して実行できます。

接続のラベル付けについては、この記事で説明されています。

Solution (AVS)

  1. Workspace Explorerでワークスペースの例題を開き、フィルム ストリップ ウィンドウでL_Pipeデータセットを選択します。 Imageチャンネルを「e ACQUIRE」セクションにドラッグします。
  2. 次にパイプの位置を見つける必要があります。 このタスクを実行するには、 LocateSingleObject_Edges1 フィルターを追加します。 次に、ReadFilmstripからの出力イメージを接続します。
  3. 以下の図のように、エッジモデルエディターを使用してエッジモデルを作成します。
  4. 次のステップでは参照座標系を使用して2つのパイプのエッジを見つけます。2つFitSegmentToEdgesフィルタを追加します。 両方の inFittingFieldAlignmentoutObject.Alignmentに接続します。
  5. AngleBetweenSegmentsフィルターを使用して、見つかったセグメント間の角度を測定します。
  6. Lパイプの幅を確認するには、MeasureObjectWidthフィルターを追加します。 inScanFieldAlignment入力を LocateSingleObject_Edges1outObject.Alignment出力に接続し、下の画像のようにスキャン フィールドを選択します。

メインマクロフィルタは、画像からパイプの寸法を計算します。

使用したフィルタ

アイコン 名前 説明
LocateSingleObject_Edges1 輪郭がシャープで硬い物体の検出。 多くの場合、プログラムの最初のフィルターの 1 つです。
MeasureObjectWidth ストライプ検出を使用してオブジェクトの幅を測定します。
AngleBetweenSegments 4 つの可能なメトリクスの 1 つを使用して、2 つのセグメント間の角度を測定します。
FitSegmentToEdges 事前に大まかな位置がわかっている直線エッジを正確に検出します。

その他の資料

  • Shape Fitting - シェイプ フィッティング テクニックの使用法を紹介します。
  • Template Matching - テンプレート マッチング テクニックの最も詳細な説明をしています。