
概述
光学标记识别 (OMR) 是一种电子过程,便于读取和捕获人们在专门设计的文档表格上标记的数据,例如测试或调查,其中包括用户填写的气泡或方形输入。通过使用 Java 中从图像提取数据,我们可以高效处理这些调查表、问卷或测试表的扫描图像,使得可以以编程方式读取用户输入。本文将指导您如何使用 Java 执行 OMR 并从图像中提取数据。
本文将涵盖以下主题:
Java OMR API 提取图像数据
要执行 OMR 操作并 在 Java 中从图像提取数据,我们将使用 Aspose.OMR for Java API。这个强大的工具能够设计、创建和识别答题卡、测试、选择题、测验、反馈表、调查和选票。
API 中的 OmrEngine 类负责创建模板和处理图像。其 getTemplateProcessor(String templatePath) 方法初始化一个针对处理模板和图像的 TemplateProcessor 实例。要识别图像,可以利用 recognizeImage(String imagePath) 方法,该方法返回所有 OMR 元素作为 RecognitionResult 类实例。使用 getCsv() 方法,您可以生成包含识别结果的 CSV 字符串。此外, recalculate(RecognitionResult result, int recognitionThreshold) 方法使用自定义参数来优化识别结果。
请下载 API 的 JAR 或在基于 Maven 的 Java 应用程序中添加以下 pom.xml 配置。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-omr</artifactId>
<version>19.12</version>
</dependency>
在 Java 中从图像提取数据
要执行 OMR 操作,我们需要准备好的 OMR 模板文件 (.omr) 和用户填写的表单或纸张的图像。在 Java 中从图像提取数据的过程,特别是使用 OMR 操作,涉及以下步骤:
- 首先,创建 OmrEngine 类的实例。
- 接下来,调用 getTemplateProcessor() 方法,初始化一个 TemplateProcessor 类对象,并将 OMR 模板文件路径作为参数传入。
- 然后,通过调用 recognizeImage() 方法,并将图像路径作为参数,获取 RecognitionResult 对象。
- 之后,使用 getCsv() 方法将识别结果获取为 CSV 字符串。
- 最后,将 CSV 结果保存为本地磁盘上的 CSV 文件。
以下代码示例演示如何通过将 OMR 数据转换为 CSV 格式来执行 Java 中从图像提取数据。

在 Java 中执行 OMR 并从图像中提取数据。
对多个图像执行 OMR 并提取数据
我们可以对多个图像执行 OMR 操作,并为每个图像提取数据到单独的 CSV 文件中,使用之前概述的步骤。要完成 在 Java 中从图像提取数据,需要逐个重复步骤 3、4 和 5。
以下是一个代码示例,演示如何使用 Java 从多个图像中提取 OMR 数据。
。列表数据,无论是项目符号还是编号,必须保持完全不变。
使用阈值提取 Java 中的 OMR 数据
要在 Java 中执行光学标记识别 (OMR) 操作,我们根据特定要求使用 0 到 100 之间的阈值。此阈值在 Java 中从图像提取数据时决定 API 在突出显示答案时的严格程度;较高的值会提高严格性。遵循前述步骤对使用所选阈值进行 OMR 处理至关重要。具体来说,在步骤 #3 中,必须调用 recognizeImage(string, int32) 方法。此重载方法需要图像文件路径和所需的阈值作为参数。
以下代码示例演示 如何使用阈值值在 Java 中执行 OMR:
使用重新计算提取 Java 中的 OMR 数据
在处理精确的 在 Java 中从图像提取数据,尤其是涉及 OMR 时,可能需要使用不同的阈值重新计算结果。通过配置 API,可以通过 TemplateProcessor.recalculate() 方法自动化重新计算。此方法允许通过调整阈值进行多次图像处理迭代,直到达到所需结果。要成功执行带有重新计算的 OMR 操作,请按照以下步骤操作:
- 首先,创建 OmrEngine 类的实例。
- 接下来,调用 getTemplateProcessor() 方法并初始化 TemplateProcessor 类对象。它接受 OMR 模板文件路径作为参数。
- 然后,通过调用 recognizeImage() 方法并将图像路径作为参数,获取 RecognitionResult 对象。
- 接下来,使用 getCsv() 方法将识别结果导出为 CSV 字符串。
- 然后,将 CSV 结果保存为本地磁盘上的 CSV 文件。
- 接下来,调用 recalculate() 方法。它将 RecognitionResult 对象和阈值作为参数。
- 之后,使用 getCsv() 方法将识别结果导出为 CSV 字符串。
- 最后,将 CSV 结果保存为本地磁盘上的 CSV 文件。
以下代码示例演示 如何使用重新计算方法在 Java 中执行 OMR:
。
获取免费许可证
您有机会 获取免费临时许可证,以便在没有评估限制的情况下试用该库。这是探索 Java 中从图像提取数据等功能的绝佳方式,让您能够全面评估其能力。以下列表数据保持不变以供参考:
- 该库能够高效处理大量数据。
- 与现有系统的集成无缝。
- 提取的数据高度准确且可靠。
- 安装步骤简单明了且文档齐全。
结论
在本文中,我们学习了如何:
- 对图像执行 OMR 操作;
- 以编程方式以 CSV 格式提取数据;
- 在对图像执行 OMR 时应用阈值设置;
- 使用 Java 在自动化过程中重新计算 OMR 结果。
此外,在处理 Java 中从图像提取数据时,您可以通过查看 文档 进一步了解 Aspose.OMR for Java API。如果您遇到任何问题,请随时通过我们的 免费支持论坛 联系我们。