# OCRMax

OCRMax 函数在使用用户定义的字符字体进行训练后，读取和/或验证感兴趣区域 (ROI) 内的文本字符串。OCRMax 通过分割和分类过程执行光学字符识别。分割首先发生，并使用阈值技术来识别图像中似乎包含文本行的区域。文本被分割成字符后，对字符进行训练并存储为字体数据库。分类发生在运行时，负责“读取”函数执行分割后找到的任何文本。这是通过将分割字符的图像与字体中的训练字符进行比较来完成的。

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

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

## OCRMax 输入

OCRMax 属性表提供了许多设置来微调函数的结果。这些可以在属性表选项卡中访问：常规、分割、训练字体、字符安排、结果和诊断。

除此之外，OCRMax 属性表中的自动调整按钮启动“自动调整”对话框，该对话框用于自动计算最佳分割参数，训练字体数据库。加载一个或多个图像并运行“自动调整”对话框后，将检查每个图像以验证字符是否被正确分割和分类。如果字符未被正确分割，OCRMax 函数的自动调整算法将计算分割当前图像以及先前训练的图像的最佳分割参数。随着更多图像得到训练，OCRMax 功能的自动调整算法将变得更加可靠和准确。一旦获得满意的结果，“自动调整”对话框关闭，系统应用新的分割参数并使用新训练的字符更新字体数据库。

注意: 自动调整对话框相对于手动调整分割参数有两个主要优势：

- 图像只需要循环一次，而不是两次（一次调整分割参数，第二次进行训练）。
- 读取准确性应该会得到提高，因为系统是使用调整过程中获得的分割参数来自动训练字符的。

## OCRMax 输出

返回 | 包含读取的字符串的 OCRMax 数据结构，如果任何输入参数无效，则为 #ERR。
结果 | 最初将 OCRMax 插入到单元格中时，系统会在电子表格中使用以下 OCRMax Vision Data Access functions创建结果表。
标签 | 函数 | 说明
字符串 | GetString(OCRMax) | 返回引用数据结构中的文本字符串。
StringPass | GetPassed(OCRMax) | 返回引用数据结构中整个字符串的通过/失败状态。
索引 |  | 字符的索引位置。
字符 | GetChar(OCRMax, 索引) | 返回引用数据结构中索引位置处的字符。
分数 | GetScore(OCRMax, 索引) | 为引用数据结构中的索引字符返回匹配分数（0 到 100）。
通过 | GetPassed(OCRMax, 索引) | 返回引用数据结构中索引字符的通过/失败状态。
2nd Char | GetScore(OCRMax, 索引 0, [索引 1]) | 返回得分第二高的字符。
2nd Score | GetScore(OCRMax, 索引 0, [索引 1]) | 返回得分第二高的字符的分数。
字符差异 |  | 返回索引字符的分数和得分第二高的值之间的差异。