在 C# 中使用条形码创建 OMR 表 |读取 OMR 条码 C#

光学标记识别(OMR)是一种可用于从标记形式的图像中读取和提取数据的技术。 OMR 通常用于标准化测试、调查和投票,但它也可用于各种其他应用,例如对学生作业进行评分和跟踪库存。在这篇博文中,我们将向您展示如何使用 C# 创建和读取带有条形码的 OMR 表。

本文涵盖以下主题:

  1. 使用条形码创建和读取 OMR - C# API
  2. 创建带条形码的 OMR 表
  3. 读取带条形码的 OMR 表
  4. 免费学习资源

使用条形码创建和读取 OMR - C# API

我们将使用 Aspose.OMR for .NET API 在 C# 中创建和读取带有条形码的 OMR 表。它允许开发人员快速轻松地设计、呈现和识别 .NET 应用程序中的手填答题表、调查、应用程序和类似表单。

下载 API 的 DLL 或使用 NuGet 安装它。

PM> Install-Package Aspose.OMR

在 C# 中创建带条形码的 OMR 表

我们可以按照以下步骤使用简单的文本标记轻松创建 OMR 模板 (.omr) 文件和工作表图像:

  1. 创建 OmrEngine 类的实例。
  2. 之后,通过以文本文件路径作为参数调用GenerateTemplate()方法来获取GenerationResult对象。
  3. 最后调用Save()方法将生成的图片和.omr模板文件保存到本地磁盘。

以下代码示例展示了如何使用 C# 创建带有条形码的 OMR 表。

// 输入输出文件目录
string dataDir = "C:\\Files\\";

// 初始化引擎
OmrEngine engine = new OmrEngine();

GenerationResult res = engine.GenerateTemplate(Path.Combine(dataDir, "OMRTestWithBarcode.txt"));

// 检查是否有错误
if (res.ErrorCode != 0)
{
    Console.WriteLine("ERROR: " + res.ErrorCode + ": " + res.ErrorMessage);
}

// 保存生成结果:图像和.omr模板
res.Save(dataDir, "OMRTestWithBarcode");
在 C# 中创建带条形码的 OMR 表

使用 C# 创建带条形码的 OMR 表。

您可以进一步检查以下用于创建 OMR 模板的简单文本标记:

?barcode=AsposeWebsite
	value=aspose.com
	barcode_type=qr
	qr_version=1
	x=1900
	y=250
	height=360

?grid=ID
	sections_count=8
#What is Aspose.OMR main function?
	() OCR () Capture human-marked data
	() There is no main function () Enhance images
#Can Aspose.OMR process not only scans, but also photos?
	() Yes, indeed! () No
#Aspose.OMR is available on any platform, because it is:
	() Cross-platform code () Cloud service
#Aspose.OMR works with any kind of OMR forms: tests, exams, questionnaires, surveys, etc.
	() Yes, indeed! () No

?text= Answer sheet section
?answer_sheet=MainQuestions
	elements_count=12
	columns_count=4

?text=Sign________________________________

请在此处下载生成的 OMR 模板

用 C# 读取带条形码的 OMR 表

我们可以对带有条形码的 OMR 表的填充扫描图像执行 OMR 操作,并将数据提取到 CSV 文件中。为此,我们需要准备好的 OMR 模板 (.omr) 和图像(用户填写的表格/工作表)。请按照以下步骤读取带有条形码的 OMR 表并提取 CSV 格式的数据。

  1. 创建 OmrEngine 类的实例。
  2. 调用 GetTemplateProcessor() 方法并初始化 TemplateProcessor 类对象。它将 OMR 模板文件路径作为参数。
  3. 通过以图像路径作为参数调用 Recognize() 方法来获取 RecognitionResult 对象。
  4. 之后,使用 GetCsv() 方法获取 CSV 字符串形式的识别结果。
  5. 最后,将CSV结果保存为本地磁盘上的CSV文件。

以下代码示例展示了如何使用 C# 读取带有条形码的 OMR 表中的数据并提取数据。

// 此代码示例演示如何对图像执行 OMR 并提取数据
// OMR模板文件路径
string TemplateName = @"OMRTestWithBarcode.omr";
string UserImage = @"OMRTestWithBarcode.png";

// 输入输出文件路径
string dataDir = "C:\\Files\\";
string templatePath = Path.Combine(dataDir, TemplateName);

// 初始化OMR引擎
OmrEngine engine = new OmrEngine();
TemplateProcessor templateProcessor = engine.GetTemplateProcessor(templatePath);
Console.WriteLine("Template loaded.");

// 获取 CSV 格式的结果
string imagePath = Path.Combine(dataDir, UserImage);
string csvResult = templateProcessor.Recognize(imagePath).GetCsv();

// 保存 CSV 文件
File.WriteAllText(Path.Combine(dataDir, Path.GetFileNameWithoutExtension(UserImage) + ".csv"), csvResult);
Console.WriteLine("Result exported. Path: " + Path.Combine(dataDir, Path.GetFileNameWithoutExtension(UserImage) + ".csv"));

Console.WriteLine(csvResult);
用 C# 读取带条形码的 OMR 表

使用 C# 读取带条形码的 OMR 表。

获取免费许可证

您可以获得免费的临时许可证来试用该库,而不受评估限制。

Aspose.OMR for .NET – 学习资源

除了从图像中提取 OMR 数据之外,您还可以使用以下资源了解有关 Aspose.OMR 的更多信息并探索该库的其他功能:

结论

在本文中,我们学习了如何在 C# 中创建和读取带有条形码的 OMR 表。我们还了解了如何提取 OMR 数据并将其保存为 CSV 格式。通过遵循本文中概述的步骤,您可以利用 Aspose.OMR 并开发您自己的 OMR 应用程序。如有任何疑问,请随时通过我们的免费支持论坛与我们联系。

也可以看看