光学标记识别(OMR)是一种可用于从标记形式的图像中读取和提取数据的技术。OMR 通常用于标准化测试、调查和投票,但它也可用于各种其他应用,例如对学生作业进行评分和跟踪库存。在这篇博文中,我们将向您展示如何使用 C# 创建和读取带有条形码的 OMR 表。
Aspose.OMR for .NET 是一种光学标记识别API,可从多种图像格式(包括JPG,BMP,GIF,TIF,TIFF)中识别光学标记。对这些图像执行OMR操作后,API会将输出保存为CSV格式。此外,OMR阅读器API允许从不同来源的文档中捕获带有人类标记的数据。API可以高精度识别来自所有这些来源的扫描图像甚至照片。
Aspose.OMR 最新下载(qun:761297826)https://www.evget.com/product/4196/download
(一) 使用条形码创建和读取 OMR - C# API
我们将使用Aspose.OMR for .NET API在 C# 中创建和读取带有条形码的 OMR 表。它允许开发人员快速轻松地设计、呈现和识别 .NET 应用程序中的手填答题表、调查、应用程序和类似表单。
PM> Install-Package Aspose.OMR
(二) 在 C# 中创建带条形码的 OMR 表
我们可以按照以下步骤使用简单的文本标记轻松创建 OMR 模板 (.omr) 文件和工作表图像:
- 创建OmrEngine类的实例。
- 之后,通过以文本文件路径作为参数调用GenerateTemplate()方法来获取GenerationResult对象。
- 最后调用Save()方法将生成的图片和.omr模板文件保存到本地磁盘。
以下代码示例展示了如何使用 C# 创建带有条形码的 OMR 表。
// Input and output files directory string dataDir = "C:\\Files\\"; // Initialize engine OmrEngine engine = new OmrEngine(); GenerationResult res = engine.GenerateTemplate(Path.Combine(dataDir, "OMRTestWithBarcode.txt")); // Check in case of errors if (res.ErrorCode != 0) { Console.WriteLine("ERROR: " + res.ErrorCode + ": " + res.ErrorMessage); } // Save generation result: image and .omr template 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 表中读取和提取数据。
// This code example demonstrates how to perform OMR on an image and extract data // OMR Template file path string TemplateName = @"OMRTestWithBarcode.omr"; string UserImage = @"OMRTestWithBarcode.png"; // Input and output files path string dataDir = "C:\\Files\\"; string templatePath = Path.Combine(dataDir, TemplateName); // Initialize OMR Engine OmrEngine engine = new OmrEngine(); TemplateProcessor templateProcessor = engine.GetTemplateProcessor(templatePath); Console.WriteLine("Template loaded."); // Get results in CSV string imagePath = Path.Combine(dataDir, UserImage); string csvResult = templateProcessor.Recognize(imagePath).GetCsv(); // Save CSV file 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 表。我们还了解了如何提取 OMR 数据并将其保存为 CSV 格式。通过遵循本文中概述的步骤,您可以利用 Aspose.OMR 并开发您自己的 OMR 应用程序。如有任何疑问,请随时通我们联系。