# 将 ViDi 图形合并到 VisionPro 记录用于显示

如在 Cognex ViDi Suite 中处理 VisionPro 图像主题中所述，必须将 ViDi 图形转换为图像坐标，转换为 VisionPro 图形对象，然后在根坐标空间中进行解释。为了显示这些图形，必须将它们（连同输入图像）添加到 VisionPro 记录中，以便 VisionPro 显示使用。最后，这些记录必须与其他 VisionPro 工具生成的记录结合使用，以便在一个显示器上显示 VisionPro 和 ViDi 图形。

## 转换为 VisionPro 图形

坐标转换、从 ViDi 类型到 VisionPro 类型的转换以及 SelectedSpaceName 的设置都由封装器自动处理。转换通过三个接口（ICreateBlueToolGraphics、ICreateRedToolGraphics 和 ICreateGreenToolGraphics）完成，因此如果程序用户想要更改默认图形的颜色或样式，则可以自定义转换。由于 ViDi 仅支持矩形 ROI，因此无法在公共 API 中覆盖表示视图的矩形图形。由于图形是使用像素值绘制的，因此默认实现将 SelectedSpaceName 设置为“#”以获取像素空间。

注意:

- DefaultBlueToolGraphicsCreator 将蓝色标记中的特征和匹配转换为等效的 ICogGraphic 类型。
- DefaultRedToolGraphicsCreator 将红色标记中的区域转换为等效的 ICogGraphic 类型，并创建热图图像。
- DefaultGreenToolGraphicsCreator 将绿色标记中的标签转换为等效的 ICogGraphic 类型。

## 向记录添加图形

封装器还提供将 ViDi 标记直接转换为 VisionPro 记录层次结构的类。这些类使用 ViDi 图像和 ViDi 标记构建；在构建过程中，这些类使用相应的 ICreateToolGraphics 接口来在后台转换图形。每个图形都作为其自身记录的内容添加，并且将从这些记录创建映射标记层次结构的层次结构。

对于在图像中定位两个零件的蓝色工具，标记层次结构可能如下所示：

- BlueMarking（蓝色标记）
  - BlueView（蓝色视图）
    - Feature（特征）
  - BlueView（蓝色视图）
    - Feature（特征）

使用此标记创建 BlueToolRecord 时，生成的记录层次结构可能如下所示：

- BlueTool Record（蓝色工具记录）
  - Content = Input Image（内容 = 输入图像）
  - SubRecords（子记录）
    - BlueViewRecord（蓝色视图记录）
      - Content = ROI Graphic（内容 = ROI 图形）
      - SubRecords（子记录）
        - FeatureRecord（特种记录）
          - Content = Feature Graphic（内容 = 特征图形）
    - BlueViewRecord（蓝色视图记录）
      - Content = ROI Graphic（内容 = ROI 图形）
      - SubRecords（子记录）
        - FeatureRecord（特种记录）
          - Content = Feature Graphic（内容 = 特征图形）

在 VisionPro 显示屏中，此记录将在每个 ROI 图形中显示输入图像、两个 ROI 图形和一个特征图形。

注意:

- 蓝色工具记录将蓝色标记转换为蓝色视图记录，特征记录和模型记录的层次结构。
- 红色工具记录将红色标记转换为红色视图记录、区域记录的层次结构，并显示热图图像。
- 绿色工具记录将绿色标记转换为绿色视图记录和标记记录的层次结构。

## 合并记录

虽然封装器提供了将一个标记转换为一个记录的类，但 ViDi 应用程序中的每个工具都将生成自己的标记。同样，VisionPro 应用程序中的每个工具都会生成自己的记录。为了在同一显示屏上显示多个工具、ViDi 和/或 VisionPro 的图形，必须将记录合并为一个。

合并记录的程序如下：

1. 创建新的 VisionPro 记录。
2. 将要显示的图像分配给新记录的内容属性。
3. 对于封装器生成的每个 ViDi 工具记录：
   1. 将工具记录添加到新记录的子记录集合中。
4. 对于每个 VisionPro 工具：
   1. 通过 CreateLastRunRecord() 获取工具的最后一次运行记录。
   2. 将最后一次运行记录添加到新记录的子记录集合中。
5. 将新记录传递给 VisionPro 显示屏。

生成的记录结构应如下所示：

- NewRecord（新记录）
  - Content = Image to display（内容 = 要显示的图像）
  - SubRecords（子记录）
    - RedToolRecord（红色工具记录）
      - ...
    - PMAlignTool.LastRun
      - ...

## Summary（摘要）

通过使用标记和输入图像创建工具记录，可以在 VisionPro 显示屏上显示 ViDi 标记的结果。要显示多个工具记录和/或多个 VisionPro 工具记录，必须将记录添加为包含要显示的图像的新记录的子记录。