# 使用校准图像

Cognex ViDi Suite 工具对像素值进行操作并返回像素值结果。VisionPro 工具在预定义或任意坐标空间上运行，并在图像选定坐标空间的上下文中返回结果。因此，当使用 PatMax 固定校准图像时，必须确保 PatMax 工具的结果是像素值结果，并且 ViDi 工具的结果是根据校准的坐标空间。

## 使用 PMAlign 工具为红色分析工具固定校准图像

PMAlign 工具生成的姿势必须是可由红色分析工具正确使用的像素值。PMAlign 工具返回姿势，用于将图案空间中的点映射到选定空间中的点。选择像素空间时（或选择根空间且根空间=像素空间）时，姿势已经是像素值。

在某些情况下，姿势不是像素值，即：

- 输入图像由 VisionPro 工具进行二次采样：
  - 选定空间：Root ("@")
  - Root space!=像素空间
- 输入图像已校准：
  - 选定空间：校准空间

值得庆幸的是，标准案例中讨论的相同程序可以处理选定空间为校准空间的图像：

提示:

###### API 示例

    ICogTransform2D fromSelectedToPixelTransform = cogImage.GetTransform("#", ".");

    CogTransform2DLinear fromPatternToPixelLinearTransform = fromSelectedToPixelTransform.ComposeBase(<Pose>).LinearTransform(0, 0);

然后，即使图像已校准，也可以将变换“fromPatternToPixelLinearTransform”传递给 AddView 以固定默认视图。

如果不采取这些预防措施，PMAlign 工具将生成仅在校准空间中有效的姿势，导致在红色分析工具中明显错位的视图。然而，在 PMAlign 工具姿势转换为像素空间后，在红色分析工具中使用图像及其姿势的过程不会改变。

## 在校准空间中使用 ViDi 标记

ViDi 标识呈现像素坐标结果 - 具体而言，是相对于已找到结果的视图原点的像素。

考虑使用返回带有单个视图和单个（方形）缺陷的标记的红色分析工具：

- 红色标记
  - 红色视图
    - 区域
      - (0, 0)
      - (1, 0)
      - (1, 1)
      - (0, 1)

因此，无论图像是否经过校准，该区域的面积都是一个像素。使用此封装器，可以将标记转换为包含校准结果的 IMarking 的新实现。转换过程需要标记以及校准转换（转换为 CogTransform2DLinear）。

假设在上面的示例中将一个像素长度校准为 5 英寸。校准版本如下：

- CalibratedRedMarking
  - CalibratedRedView
    - CalibratedRegion
      - (0, 0)
      - (5, 0)
      - (5, 5)
      - (0, 5)

现在，Region.Area 属性将返回 25，表示校准空间中的 in2 而不是像素。这允许将相同的界面用于校准结果和未校准结果。

注意:

- 可以通过 ICogImage.GetTransform("#", "<CalibrationSpaceName>") 从校准图像中检索校准变换。

  这将返回校准空间到像素空间的变换。

- ViDi2.VisionPro.Calibration 命名空间提供了不同 ViDi 标记的校准实现。

## 摘要

在校准图像上使用 PatMax 和 ViDi 时，PatMax 工具必须以像素为单位返回姿势。要解释校准空间中的 ViDi 结果，必须从（像素）标记和校准变换创建 CalibratedMarking。