Cap Inspection 3D

目的

この例の目的は、3Dと2Dの相互運用性を示すことです。タスクは、キャップをセグメント化し、その平均高さと半径をチェックすることです。

入力

3Dスキャナーで取得したキャップの表面。

3Dキャップ入力画像

出力

セグメント化されたキャップとその寸法の画像。

3Dキャップ出力画像

ヒント

Surfaceデータ型のポイントクラウドを取得したら、以下の手順を試してください:

  1. ポイントクラウドを画像に変換するフィルターを見つける。
  2. 領域分析技術を使用してセグメンテーションを実行する。
  3. キャップを表す塊を抽出する。
  4. 各キャップを個別に分析する:

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

Solution (AVS)

  1. ワークスペースエクスプローラーExamplesワークスペースを開き、フィルムストリップウィンドウでCap3Dデータセットを選択します。SurfaceチャンネルをACQUIREセクションにドラッグします。outSurface出力をSurfaceとラベル付けします。

  2. CreateImageFromSurfaceフィルターを追加して、与えられた表面のz値の画像を作成します。これにより、入力データが3Dであっても2Dツールで作業できるようになります。SurfaceinSurfaceに接続します。フィルターをクリックし、プロパティウィンドウでinPixelTypeUInt16に設定します。inPixelScale0.010に設定します。

  3. ExtractBlobs_Intensityを追加してキャップを分離します。CreateImageFromSurfaceoutImage出力と接続します。inThresholdParamsPolarityBrightに、inProcessingParamsMinArea500に設定します。outBlobs出力をCapRegionsとラベル付けします。見つかった塊を新しいプレビューウィンドウに表示します。

  4. 新しいステップマクロフィルターを作成し、InspectSingleCapと名付け、以下の入力を接続します:

  5. InspectSingleCapステップの内部に移動し、inCapRegion入力をCapRegionとして、 inSurfaceSurfaceとしてラベル付けします。

  6. AlignRegionToSurfaceFormatを追加して、 2D空間で定義された各領域を3D相当に変換します:

    • inRegion入力をCapRegionに接続します。
    • inInputSurfaceCoordinatesFormatをステップのinSurfaceCoordinatesFormat入力に接続します。
    • inOutputSurfaceFormatSurfaceに接続します。
  7. SurfaceMedianを追加して、各キャップの中央高さをチェックします:

    • inSurface入力をSurfaceに接続します。
    • inRegion入力をAlignRegionToSurfaceFormatoutAlignedRegion出力に接続します。
    • outMedian出力をCapMedianHeightとラベル付けし、 InspectSingleCapマクロフィルターの出力にoutMedianHeightとして接続します。
  8. RegionBoundingCircleを追加して、2D画像上で見つかった各キャップの境界を見つけます。その入力をCapRegionに接続します。

  9. ImageCircleToSurfaceCoordinatesフィルターを追加して、 見つかった2D境界を3Dバージョンに変換します:

    • inImageCircle入力をRegionBoundingCircleoutBoundingCircleに接続します。
    • inSurfaceCoordinatesFormatをマクロフィルターのinSurfaceCoordinatesFormat入力に接続します。
  10. FitCircleToEdges3Dを追加して、キャップのエッジを見つけます。 後で、得られた点に円が適合されます。この操作は直接ポイントクラウド上で実行されます:

    • inSurface入力をSurfaceに接続します。
    • フィルターの下部にあるShow/Hide Portsをクリックし、inFittingFieldサブメニューの Axisオプションをチェックします。これを ImageCircleToSurfaceCoordinatesoutSurfaceCircle出力に接続します。
    • inEdgeScanParams EdgeTransitionValidToInvalidに設定します。
    • outCircleCapCircle3Dとラベル付けし、マクロフィルターの出力に接続します。 新しい出力をoutCircle3Dと名付けます。
  11. Mainマクロフィルターに戻ります。InspectSingleCapoutCircle3D出力を CapCircle3Dとして、outMedianHeightCapMedianHeightとしてラベル付けします。 フィルターの下部にあるShow/Hide Portsをクリックし、CapCircle3DサブメニューのRadiusオプションをチェックします。新しい出力をCapRadiusとラベル付けします。

  12. CapMedianHeightCapRadiusを新しいプレビューウィンドウに表示します。

マクロフィルタ メイン

マクロフィルタ InspectSingleCap

その他の資料

  • ブロブ解析 - ブロブ分析手法について詳しく説明します。
  • 数式 - 数式の使用に関する詳細情報です。
  • Geometry 3D - List of filters useful in 3D geometry.
  • Surface - Filters performing operations on surfaces in Aurora Vision Studio.