示例:教你在.NET应用程序中创建OMR工作表扫描仪软件

空扰寡人 提交于 2020-10-04 03:23:49

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引擎输入的文本标记:

光学标记识别API-Aspose.OMR实操指南:在.NET应用程序中创建OMR工作表检查器或扫描仪软件

现在,我们将使用C#代码按照以下步骤创建OMR多选题表:

  1. 初始化OMR引擎
  2. 使用文本标记调用GenerateTemplate方法
  3. 保存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文件或图像按您的要求分发文件。

光学标记识别API-Aspose.OMR实操指南:在.NET应用程序中创建OMR工作表检查器或扫描仪软件

使用C#对多项选择题气泡答题纸图像执行OMR

最后,您将在生成的气泡答题纸上收集响应,然后捕获图像,或扫描它们以使用C#执行OMR。在此示例中,让我们考虑以下示例图像。用于.NET API的Aspose.OMR将创建一个逗号分隔(CSV)文件作为执行OMR的输出。

光学标记识别API-Aspose.OMR实操指南:在.NET应用程序中创建OMR工作表检查器或扫描仪软件

让我们按照以下步骤使用C#执行OMR:

  1. 指定模板文件路径
  2. 指定扫描的图像文件路径
  3. 初始化TemplateProcessor
  4. 使用RecognizeImage方法识别图像
  5. 将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信息。

光学标记识别API-Aspose.OMR实操指南:在.NET应用程序中创建OMR工作表检查器或扫描仪软件

如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183),我们很高兴为您提供查询和咨询

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!