光学标记识别(OMR)是一种可用于从标记形式的图像中读取和提取数据的技术。 OMR 通常用于标准化测试、调查和投票,但它也可用于各种其他应用,例如对学生作业进行评分和跟踪库存。在这篇博文中,我们将向您展示如何使用 C# 创建和读取带有条形码的 OMR 表。
本文涵盖以下主题:
使用条形码创建和读取 OMR - C# API
我们将使用 Aspose.OMR for .NET API 在 C# 中创建和读取带有条形码的 OMR 表。它允许开发人员快速轻松地设计、呈现和识别 .NET 应用程序中的手填答题表、调查、应用程序和类似表单。
请下载 API 的 DLL 或使用 NuGet 安装它。
PM> Install-Package Aspose.OMR
在 C# 中创建带条形码的 OMR 表
我们可以按照以下步骤使用简单的文本标记轻松创建 OMR 模板 (.omr) 文件和工作表图像:
- 创建 OmrEngine 类的实例。
- 之后,通过以文本文件路径作为参数调用GenerateTemplate()方法来获取GenerationResult对象。
- 最后调用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");
您可以进一步检查以下用于创建 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 格式的数据。
- 创建 OmrEngine 类的实例。
- 调用 GetTemplateProcessor() 方法并初始化 TemplateProcessor 类对象。它将 OMR 模板文件路径作为参数。
- 通过以图像路径作为参数调用 Recognize() 方法来获取 RecognitionResult 对象。
- 之后,使用 GetCsv() 方法获取 CSV 字符串形式的识别结果。
- 最后,将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);
获取免费许可证
您可以获得免费的临时许可证来试用该库,而不受评估限制。
Aspose.OMR for .NET – 学习资源
除了从图像中提取 OMR 数据之外,您还可以使用以下资源了解有关 Aspose.OMR 的更多信息并探索该库的其他功能:
结论
在本文中,我们学习了如何在 C# 中创建和读取带有条形码的 OMR 表。我们还了解了如何提取 OMR 数据并将其保存为 CSV 格式。通过遵循本文中概述的步骤,您可以利用 Aspose.OMR 并开发您自己的 OMR 应用程序。如有任何疑问,请随时通过我们的免费支持论坛与我们联系。