Aspose.OMR是一种光学标记识别API,用于识别各种类型的答题纸,包括测试,评估,调查,测验,MCQ论文,反馈表格-包括气泡作为输入的任何类型的文档。API支持创建和读取OMR表单,并以流行的图像格式处理照片和扫描,并提供各种格式的输出。
光学标记识别,缩写为OMR,通常用于评估问卷,调查和其他信息收集标准。因此,光学标记识别系统在科学研究或商业研究中起着重要作用。
本文让我们学习如何在.NET应用程序中使用C#语言创建和检查OMR问答纸。我们将简要探讨以下方法:(点击下载Aspose.OMR)
- 使用C#创建OMR问题表模板,图像和PDF文件
- 使用C#对多选气泡答题纸图像执行OMR
使用C#创建OMR问题表模板,图像和PDF文件
在这里,我们将样本问题存储在TXT文件中,稍后OMR引擎将使用它们来创建OMR问题纸模板,图像和PDF文件。此外,以下是我们将用作OMR引擎输入的文本标记:
现在,我们将使用C#代码按照以下步骤创建OMR多选题表:
- 初始化OMR引擎
- 使用文本标记调用GenerateTemplate方法
- 保存OMR输出问题表
以下代码段基于这些步骤,这些步骤显示了如何使用C#创建OMR问题表模板,图像和PDF文件:
// initialize OMR engine OmrEngine engine = new OmrEngine(); // call template generation providing path to the txt file with markup GenerationResult res = engine.GenerateTemplate(Path.Combine(testFolderPath, "Grid.txt")); // check in case of errors if (res.ErrorCode != 0) { Console.WriteLine("ERROR CODE: " + res.ErrorCode); } // you can use either of the following approaches // save generation result: PDF and .omr template res.SaveAsPdf(testFolderPath , "Grid"); // save generation result: image and .omr template res.Save(testFolderPath, "Grid");
因此,我们已经创建了OMR试卷,如下截图所示。您可以通过打印生成的PDF文件或图像按您的要求分发文件。
使用C#对多项选择题气泡答题纸图像执行OMR
最后,您将在生成的气泡答题纸上收集响应,然后捕获图像,或扫描它们以使用C#执行OMR。在此示例中,让我们考虑以下示例图像。用于.NET API的Aspose.OMR将创建一个逗号分隔(CSV)文件作为执行OMR的输出。
让我们按照以下步骤使用C#执行OMR:
- 指定模板文件路径
- 指定扫描的图像文件路径
- 初始化TemplateProcessor
- 使用RecognizeImage方法识别图像
- 将CSV输出写入TXT文件
下面的代码段显示了如何在C#中的多选气泡答题纸图像上执行OMR:
string TemplateName = @"Sheet.omr"; string[] UserImages = new string[] { "Sheet1.jpg" }; // input and output preparation string testFolderPath = dataDir; string templatePath = Path.Combine(testFolderPath, TemplateName); // actual OMR API calls OmrEngine engine = new OmrEngine(); TemplateProcessor templateProcessor = engine.GetTemplateProcessor(templatePath); Console.WriteLine("Template loaded."); for (int i = 0; i < UserImages.Length; i++) { string imagePath = Path.Combine(testFolderPath, UserImages[i]); string csvResult = templateProcessor.RecognizeImage(imagePath).GetCsv(); File.WriteAllText(Path.Combine(outputPath, Path.GetFileNameWithoutExtension(UserImages[i]) + ".csv"), csvResult); Console.WriteLine("Result exported. Path: " + Path.Combine(testFolderPath, Path.GetFileNameWithoutExtension(UserImages[i]) + ".csv")); }
以下屏幕截图显示了使用Aspose.OMR for .NET API生成输出CSV文件的效率和准确性。现在可以根据系统设计进一步处理此CSV信息。
如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183),我们很高兴为您提供查询和咨询。
来源:oschina
链接:https://my.oschina.net/u/4087915/blog/4532272