光学标记识别 (OMR) 是从具有特定标记的文档中检索数据的过程。标记由人工完成,并由 OMR 试卷阅读器软件或扫描仪读取。然而,OMR 是自动创建和评估答题纸和 OMR 模板的重要组成部分。因此,这篇博文将为 Java 程序员介绍一个 OMR 库。Aspose.OMR for Java 提供以编程方式在 Java 中构建 OMR 试卷阅读器的功能。此外,我们还将介绍一个 在线 OMR 工具,因此请仔细阅读本文。
我们将在本篇博文中介绍以下部分:
Aspose.OMR for Java - OMR 库安装
有关于 安装 的全面指南。因此,您可以 下载 JAR 文件或使用以下 Maven 配置:
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://releases.aspose.com/java/repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-omr</artifactId>
<version>23.12</version>
</dependency>
</dependencies>
Java 中的 OMR 表格阅读器 - 代码示例
我们现在可以按照以下步骤开始开发OMR表阅读器软件:
- 创建 OmrEngine 类的对象。
- 调用getTemplateProcessor方法获取模板处理器。
- 设置用于重新计算的自定义阈值,其范围是(0 到 100)。值越低 - 气泡被算作填充所需的黑色像素越少,反之亦然。
- 循环浏览图像。
- 通过调用recognizeImage方法来识别图像。
- 调用 getCsv 方法获取导出 CSV 字符串并将 CSV 保存到输出文件夹。
- 调用recalculate方法,使用自定义阈值重新计算识别结果。
- 将重新计算的结果保存在 CSV 文件中。
以下代码片段演示了如何以编程方式使用 Java 开发 OMR 表阅读器:
package com.example;
import com.aspose.omr.OmrEngine;
import com.aspose.omr.RecognitionResult;
import com.aspose.omr.TemplateProcessor;
import java.io.FileOutputStream;
import java.io.PrintWriter;
// Java 中的 OMR Sheet 阅读器 - OMR Sheet PNG
public class Main {
public static void main(String[] args) throws Exception {
// 定义工作目录。
String[] UserImages = new String[] { "/Sheet.png" };
String[] UserImagesNoExt = new String[] { "/files/" };
String templatePath = "/Sheet.omr";
// 创建OmrEngine类的对象。
OmrEngine engine = new OmrEngine();
// 调用getTemplateProcessor方法获取模板处理器。
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath);
// 设置用于重新计算的自定义阈值,其范围是(0 到 100)。值越低 - 气泡被算作填充所需的黑色像素越少,反之亦然。
int CustomThreshold = 0;
// 循环浏览图像。
for (int i = 0; i < UserImages.length; i++)
{
String image = UserImages[i];
String imagePath = image;
// 通过调用recognizeImage方法来识别图像。
RecognitionResult result = templateProcessor.recognizeImage(imagePath);
// 调用 getCsv 方法获取导出 CSV 字符串并将 CSV 保存到输出文件夹。
String stringRes = result.getCsv();
String outputName = UserImagesNoExt[i] + ".csv";
PrintWriter wr = new PrintWriter(new FileOutputStream(outputName), true);
wr.println(stringRes);
// 调用recalculate方法,根据自定义阈值重新计算识别结果。
templateProcessor.recalculate(result, CustomThreshold);
stringRes = result.getCsv();
// 将重新计算的结果保存在 CSV 文件中。
outputName = UserImagesNoExt[i] + "_recalculated.csv";
wr = new PrintWriter(new FileOutputStream(outputName), true);
wr.println(stringRes);
}
}
}
您可以在下图中看到输出:
在线OMR工具
除了 Java 的 OMR 库之外,Aspose.OMR 还支持 在线 OMR 试卷阅读器。因此,这款免费工具非常安全,可以高效扫描答题纸。最重要的是,无需创建帐户或订阅。因此,您只需拖放文件即可使用它。
OMR Sheet PNG - 获取免费许可证
现在,您可以利用免费临时许可证来试用此 OMR 库,突破评估限制。
结论
这篇博文到此结束。我们已经了解了什么是 OMR,以及如何用 Java 构建 OMR 表格阅读器。同样,您可以利用这个 OMR 库来节省时间和人力,因为您可以开发自己的 OMR 表格阅读器软件。此外,您可以访问 GitHub repo 开始开发。此外,您可以访问 文档 和 API 参考 以了解有关 Aspose.OMR for Java 的更多信息。
可获得帮助
您可以在我们的论坛上分享您的问题或疑问。
常见问题 – 常见问题解答
我们可以在线查看 OMR 表吗?
您可以使用此在线 OMR 答题纸阅读器来检查 OMR 答题纸。
如何用 Java 读取 OMR 表?
Aspose.OMR for Java 是一个 OMR 库,提供丰富的功能,可从程序中读取 OMR 答题纸。请参阅此 链接 了解如何操作。