# ViDi グラフィックスを表示するための VisionPro レコードへの組み込み

「Cognex ViDi Suite での VisionPro 画像の操作」のトピックで説明したとおり、ViDi グラフィックスは画像座標に変換し、VisionPro グラフィックオブジェクトに変換してから、ルート座標空間で解釈される必要があります。これらのグラフィックスを表示するには、VisionPro レコードにグラフィックスを (入力画像とともに) 追加する必要があります。そうすると、VisionPro ディスプレイで使用できます。最後に、1 つのディスプレイに VisionPro グラフィックスと ViDi グラフィックスを表示するために、他の VisionPro ツールによって生成されたレコードとこれらのレコードを結合する必要があります。

## VisionPro グラフィックスへの変換

座標変換、ViDi タイプから VisionPro タイプへの変換、および SelectedSpaceName の設定は、すべてラッパーによって自動的に処理されます。変換は 3 つのインタフェース (ICreateBlueToolGraphics、ICreateRedToolGraphics、および ICreateGreenToolGraphics) によって行われるため、プログラムのユーザはデフォルトのグラフィックスの色やスタイルを変更する場合に、独自の変換を定義できます。矩形の ROI は ViDi だけでサポートされているため、ビューを表す矩形のグラフィックスはパブリック API では上書きできません。グラフィックスはピクセル値を使用して描画されるため、デフォルトの実装では SelectedSpaceName がピクセル空間を表す "#" に設定されます。

注 :

- DefaultBlueToolGraphicsCreator は、青のマーキングからの特徴と一致を同等の ICogGraphic タイプに変換します。
- DefaultRedToolGraphicsCreator は、赤のマーキングからの領域を同等の ICogGraphic タイプに変換し、ヒートマップ画像も作成します。
- DefaultGreenToolGraphicsCreator は、緑のマーキングからのタグを同等の ICogGraphic タイプに変換します。

## レコードへのグラフィックスの追加

ラッパーでは、ViDi のマーキングを VisionPro レコードの階層に直接変換するクラスも提供します。これらのクラスは、ViDi 画像および ViDi マーキングを使用して作成されます。作成中に、対応する ICreateToolGraphics インタフェースを使用して内部でグラフィックスを変換します。各グラフィックスは独自のレコードのコンテンツとして追加され、これらのレコードからマーキング階層を反映する階層が作成されます。

画像で 2 つのパーツを探す青ツールの場合、マーキング階層は次のようになる場合があります。

- BlueMarking
  - BlueView
    - 特徴
  - BlueView
    - 特徴

このマーキングを使用して BlueToolRecord を作成すると、結果として次のようなレコード階層が生成される場合があります。

- BlueTool Record
  - Content = 入力画像
  - SubRecord
    - BlueViewRecord
      - Content = ROI グラフィックス
      - SubRecord
        - FeatureRecord
          - Content = 特徴グラフィックス
    - BlueViewRecord
      - Content = ROI グラフィックス
      - SubRecord
        - FeatureRecord
          - Content = 特徴グラフィックス

VisionPro ディスプレイには、このレコードによって入力画像、2 つの ROI グラフィックス、および各 ROI グラフィックス内に 1 つの特徴グラフィックスが表示されます。

注 :

- BlueToolRecord は、BlueMarking を BlueViewRecord、FeatureRecord、および ModelRecord の階層に変換します。
- RedToolRecord は、RedMarking を RedViewRecord と RegionRecord の階層に変換し、ヒートマップ画像を表示します。
- GreenToolRecord は、GreenMarking を GreenViewRecord と TagRecord の階層に変換します。

## レコードの結合

ラッパーは 1 つのマーキングを 1 つのレコードに変換するクラスを提供しますが、ViDi アプリケーションの各ツールは独自のマーキングを生成します。さらに、ViDi アプリケーションの各ツールは独自のレコードを生成します。ViDi や VisionPro などの複数のツールのグラフィックスを同じディスプレイに表示するには、レコードを 1 つに結合する必要があります。

レコードの結合手順は次のとおりです。

1. 新しい VisionPro レコードを作成します。
2. 表示する画像を新しいレコードの Content プロパティに割り当てます。
3. ラッパーによって生成された ViDi ToolRecord ごとに、以下を実行します。
   1. ToolRecord を新しいレコードの SubRecord コレクションに追加します。
4. VisionPro ツールごとに、以下を実行します。
   1. CreateLastRunRecord() を使用してツールの前回の実行レコードを取得します。
   2. 前回の実行レコードを新しいレコードの SubRecord コレクションに追加します。
5. 新しいレコードを VisionPro ディスプレイに渡します。

結果として次のようなレコードの構造が生成されます。

- NewRecord
  - Content = 表示する画像
  - SubRecord
    - RedToolRecord
      - ...
    - PMAlignTool.LastRun
      - ...

## 要約

ViDi マーキングからの結果は、マーキングおよび入力画像を含む ToolRecord を作成することによって、VisionPro ディスプレイに表示できます。複数の ToolRecord や複数の VisionPro ツールのレコードを表示するには、表示する画像が含まれている新しいレコードの SubRecord としてレコードを追加する必要があります。