# OCV/OCR

OCV/OCR 工具使用训练字体读取和验证文本字符串。OCV/OCR 工具包括以下函数：

- OCRMax：训练、读取和验证文本字符串中的字符。
- OCRMaxSettings：提供对分割参数和其他高级文本阅读参数的编程访问。

## OCV/OCR 概述

In-Sight Explorer 提供两种不同的光学字符验证 (OCV) 和光学字符识别 (OCR) 方法来检查图像中的字母数字文本字符串：OCRMax 和 OCRMaxSettings 函数。

### OCRMax 和 OCRMaxSettings 函数

OCRMax 函数通过分割和分类过程执行 OCR。分割首先发生，并使用阈值技术来识别图像中似乎包含文本行的区域。文本被分割成字符后，对字符进行训练并存储为字体数据库。分类在运行时发生，负责读取函数执行分割后找到的任何文本。这是通过将分割字符的图像与字体中的训练字符进行比较来完成的。

注意:OCRMax 函数是一个自包含函数，即它可以在不使用 OCRMaxSettings 函数的情况下进行分割和分类。OCRMaxSettings 功能为非常困难的应用程序提供高级分割和分类参数，并提供对设置的编程控制，支持从远程设备调整参数。

#### 分割

在分割过程中，OCRMax 函数确定文本行在 ROI 内的位置，并计算文本的角度、倾斜度和极性。然后，对该区域进行归一化以去除不需要的噪声，然后再将其二值化为前景和背景像素。在二值化图像中，执行斑点分析以生成字符片段，每个字符片段代表一个斑点。然后将字符片段组合在一起形成字符，并为字符分配一个字符矩形。

ROI 中的文本行被分割成各个字符的图像，每个字符都包含在不可编辑的字符矩形中。ROI 定义了文本行的大致位置、角度和倾斜度。如有必要，“分割”选项卡上的“角度范围”和“倾斜范围”参数可用于补偿变化。

注意:重要的是要了解 OCRMax 函数不是通用字符串查找器；它无法在具有大 ROI 的任意复杂图像中找到字符串。必须直接在文本行上配置 ROI。

#### 分类

在分割完成后，并且字符已训练并加入字体数据库中，运行时图像中的字符分类就开始了。分类将分割后的字符图像作为输入，并确定对应的字母。通过对一行文本中的所有分割字符图像进行分类，返回整行文本的整个字符串。

分类发生在训练之后，其中根据输入的字符串或用户分配的值为各个字符分配一个标题。在一组字符训练并分组为字体后，分类就将运行时图像与字体中的字符进行比较，并返回最匹配的字符，以及该最匹配字符的分数。

每个字符都是从一个或多个要分类的字符示例中训练出来的。这些字符被组合成一种字体，存储在 OCRMax 函数的 OCRMax 数据结构中。字体包括所有训练字符；每个字符由其名称和字符矩形的图像以及其中的信息（例如文本的墨水）组成。