Java 中的 OMR Sheet 阅读器 - OMR Sheet PNG

光学标记识别 (OMR) 是从具有特定标记的文档中检索数据的过程。标记由人工完成,并由 OMR 试卷阅读器软件或扫描仪读取。然而,OMR 是自动创建和评估答题纸和 OMR 模板的重要组成部分。因此,这篇博文将为 Java 程序员介绍一个 OMR 库。Aspose.OMR for Java 提供以编程方式在 Java 中构建 OMR 试卷阅读器的功能。此外,我们还将介绍一个 在线 OMR 工具,因此请仔细阅读本文。

我们将在本篇博文中介绍以下部分:

  1. Aspose.OMR for Java - OMR 库安装
  2. Java 中的 OMR 表格阅读器 - 代码示例
  3. 在线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>
omr 库安装

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 表格阅读器软件

在线OMR工具

除了 Java 的 OMR 库之外,Aspose.OMR 还支持 在线 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 答题纸。请参阅此 链接 了解如何操作。

参见