Оптическое распознавание меток, сокращенно OMR, часто используется для оценки анкет, опросов и других стандартов сбора информации. В этой статье вы узнаете, как создавать и проверять листы вопросов и ответов OMR с помощью языка C# в приложении .NET. Мы кратко рассмотрим следующие подходы:

API создания и проверки шаблонов OMR — установка Создайте шаблон листа вопросов OMR, изображение и файл PDF с помощью C# Выполнение OMR на изображениях листов с ответами в форме всплывающих окон с множественным выбором с помощью C#

OMR Template Creator и Checker API — установка

Для создания шаблонов OMR и выполнения операций OMR в приложениях C# или VB.NET сначала необходимо установить Aspose.OMR для .NET API. Вы можете легко загрузить его из Новые выпуски или с помощью следующей команды NuGet:

Install-Package Aspose.OMR -Version 20.6.0

Таким образом, теперь мы готовы приступить к созданию ресурсов листа вопросов с несколькими вариантами ответов с помощью API с использованием C#:

Создание шаблона листа вопросов OMR, изображения и файла PDF с помощью C#

Давайте рассмотрим создание ресурсов листа вопросов OMR. Здесь мы будем хранить примеры вопросов в файле TXT, который позже будет использоваться механизмом OMR для создания шаблона бумажного вопроса OMR, изображения и файла PDF. Кроме того, ниже приведена текстовая разметка, которую мы будем использовать в качестве входных данных для механизма OMR:

?text=Name__________________________________ Date____________

?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
#Excellent recognition results can be achieved only for filled bubbles at least for:
	() 40% () 60% () 75% () 98%
#Do you have to mark up every question on the page?
	(Yes) Yes, that will help a lot! (No) No
#Rate your preference from 0 to 9 with "0" being preference towards performance
and "9" being preference towards flexibility.
	(0) (1) (2) (3) (4) (5) (6) (7) (8) (9)
#I found aspose omr to be a useful tool. (5 - strongly agree, 1 - strongly disagree)
	(5) (4) (3) (2) (1)

?text= Answer sheet section
?answer_sheet=MainQuestions
	elements_count=10
	columns_count=5

?text=Sign________________________________

Теперь мы выполним следующие шаги с кодом C#, чтобы создать лист вопросов с множественным выбором OMR:

  1. Инициализировать движок OMR
  2. Вызвать метод GenerateTemplate с текстовой разметкой
  3. Сохранить выходной лист вопросов OMR

Следующий фрагмент кода основан на этих шагах, которые показывают, как создать шаблон листа вопросов OMR, изображение и файл PDF с помощью C#:

// инициализировать механизм OMR
OmrEngine engine = new OmrEngine();

// генерация шаблона звонка с указанием пути к txt файлу с разметкой
GenerationResult res = engine.GenerateTemplate(Path.Combine(testFolderPath, "Grid.txt"));

// проверить в случае ошибок
if (res.ErrorCode != 0)
{
    Console.WriteLine("ERROR CODE: " + res.ErrorCode);
}

// вы можете использовать любой из следующих подходов
// сохранить результат генерации: шаблон PDF и .omr
res.SaveAsPdf(testFolderPath , "Grid");
// сохранить результат генерации: изображение и шаблон .omr
res.Save(testFolderPath, "Grid");

Итак, мы создали вопросник OMR, как показано на следующем снимке экрана. Вы можете распространять статьи, распечатав сгенерированный PDF-файл или изображение в соответствии с вашими требованиями.

Шаблон OMR

Выполнение OMR на изображениях листа ответов пузырька с множественным выбором с помощью C#

Наконец, вы должны собрать ответы на сгенерированных бланках ответов, а затем захватить изображения или отсканировать их для выполнения OMR с помощью C#. В этом примере давайте рассмотрим следующий образец изображения. Aspose.OMR для .NET API создаст файл с разделителями-запятыми (CSV) в качестве результата выполнения OMR.

создать омр

Давайте выполним следующие шаги для выполнения OMR с использованием C#:

  1. Укажите путь к файлу шаблона
  2. Укажите путь к файлу отсканированного изображения
  3. Инициализировать TemplateProcessor
  4. Распознавание изображений методом RecognizeImage
  5. Записать вывод CSV в файл TXT

В приведенном ниже фрагменте кода показано, как выполнить OMR для изображений таблицы ответов с несколькими вариантами ответов в C#:

string TemplateName = @"Sheet.omr";
string[] UserImages = new string[] { "Sheet1.jpg" };

// подготовка ввода и вывода
string testFolderPath = dataDir;
string templatePath = Path.Combine(testFolderPath, TemplateName);

// фактические вызовы API OMR
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"));
}

На следующем снимке экрана показано, насколько эффективно и точно создается выходной CSV-файл с помощью Aspose.OMR для .NET API. Теперь эту информацию CSV можно обрабатывать в соответствии с дизайном вашей системы.

произнести омр

Вывод

В двух словах, мы узнали, как создавать листы вопросов, а затем выполнять операции OMR для маркировки изображений листов ответов с помощью C#. Создание листов OMR и последующее выполнение операций OMR с изображениями очень полезно для различных методов исследования. Кроме того, в случае возникновения каких-либо проблем или вопросов вы можете связаться с нами через бесплатные форумы поддержки.

Смотрите также