# Incorporar gráficos de ViDi en un registro de VisionPro para visualización

Tal como se describe en el tema Trabajar con imágenes de VisionPro en Cognex ViDi Suite, los gráficos de ViDi deben transformarse en coordenadas de imagen, convertirse en objetos gráficos de VisionPro y, luego, interpretarse en el espacio de coordenadas raíz. Para poder visualizar estos gráficos, deben añadirse (junto con la imagen de entrada) a un registro de VisionPro, que puede ser consumido por una pantalla de VisionPro. Por último, estos registros deben combinarse con los registros producidos por otras herramientas de VisionPro con el fin de mostrar en una misma pantalla tanto los gráficos de VisionPro como de ViDi.

## Convertir en gráficos de VisionPro

Las transformaciones de coordenadas, la conversión de tipos ViDi a tipos VisionPro y el ajuste SelectedSpaceName los maneja automáticamente el contenedor. Las conversiones se realizan a través de tres interfaces (ICreateBlueToolGraphics, ICreateRedToolGraphics e ICreateGreenToolGraphics), por lo que los usuarios programadores pueden definir sus propias conversiones si desean cambiar el color o el estilo de los gráficos predeterminados. El gráfico rectangular que representa una vista no puede anularse en la API pública ya que ViDi solo admite regiones de interés (ROI) rectangulares. Dado que los gráficos se dibujan utilizando valores de píxeles, las implementaciones predeterminadas establecen el SelectedSpaceName en "#" para el espacio de píxeles.

Nota:

- DefaultBlueToolGraphicsCreator convierte características y coincidencias de las marcas azules en tipos ICogGraphic equivalentes.
- DefaultRedToolGraphicsCreator convierte regiones de marcas rojas en tipos ICogGraphic equivalentes y también crea la imagen del mapa de calor.
- DefaultGreenToolGraphicsCreator convierte etiquetas de las marcas verdes en tipos ICogGraphic equivalentes.

## Añadir gráficos a registros

El contenedor también proporciona clases que convierten marcas de ViDi directamente en una jerarquía de registros de VisionPro. Estas clases se construyen con una imagen de ViDi y una marca de ViDi; durante la construcción, estas clases usan la interfaz correspondiente de ICreateToolGraphics para convertir los gráficos técnicamente. Cada gráfico se añade como el contenido de su propio registro y a partir de dichos registros se crea una jerarquía que refleja la jerarquía de marcas.

En el caso de una herramienta azul que localiza dos partes de una imagen, la jerarquía de marcas puede presentar el siguiente aspecto:

- BlueMarking
  - BlueView
    - Feature
  - BlueView
    - Feature

Cuando se utiliza esta marca para crear un registro de herramienta azul, la jerarquía de registros resultante puede presentar este aspecto:

- Registro de herramienta azul
  - Content = Input Image
  - SubRecords
    - BlueViewRecord
      - Content = ROI Graphic
      - SubRecords
        - FeatureRecord
          - Content = Feature Graphic
    - BlueViewRecord
      - Content = ROI Graphic
      - SubRecords
        - FeatureRecord
          - Content = Feature Graphic

En una pantalla de VisionPro, este registro mostraría la imagen de entrada, dos gráficos de ROI y un gráfico de características en cada gráfico de ROI.

Nota:

- BlueToolRecord convierte BlueMarking en una jerarquía de BlueViewRecords, FeatureRecords y ModelRecords.
- Un registro de herramienta roja convierte una marca roja en una jerarquía de registros de vista roja, registros de regiones y expone la imagen del mapa de calor.
- El registro de herramienta verde convierte una marca verde en una jerarquía de registros de vista verde y registros de etiqueta.

## Combinar registros

Mientras que el contenedor proporciona clases que convierten una marca en un registro, cada herramienta en una aplicación ViDi producirá su propia marca. Asimismo, cada herramienta de una aplicación VisionPro producirá su propio registro. Para mostrar los gráficos de múltiples herramientas, ViDi y/o VisionPro, en la misma pantalla, los registros deben combinarse en uno solo.

El procedimiento para combinar registros es el siguiente:

1. Crear un nuevo registro de VisionPro.
2. Asigne la imagen que se va a mostrar a la nueva propiedad Contenido del registro.
3. Para cada registro de herramienta de ViDi producido por el contenedor:
   1. Añada el registro de herramienta a la nueva colección de subregistros del registro.
4. Para cada herramienta VisionPro:
   1. Use CreateLastRunRecord() para obtener el registro de la última vez que se ejecutó la herramienta.
   2. Añada el registro de la última ejecución a la nueva colección de subregistros del registro.
5. Pase el nuevo registro a una pantalla de VisionPro.

La estructura del registro resultante debería tener este aspecto:

- NewRecord
  - Content = Image to display
  - SubRecords
    - RedToolRecord
      - ...
    - PMAlignTool.LastRun
      - ...

## Resumen

Los resultados de una marca ViDi pueden mostrarse en una pantalla de VisionPro creando un registro de herramienta con la marca y la imagen de entrada. Para visualizar varios registros de herramienta y/o varios registros de herramienta VisionPro, los registros deben añadirse como subregistros de un nuevo registro que contenga la imagen que se vaya a visualizar.