Оптичне розпізнавання позначок, скорочено OMR, часто використовується для оцінки анкет, опитувань та інших стандартів збору інформації. У цій статті ви дізнаєтеся, як створювати та перевіряти бланки запитань OMR і відповіді з підказками за допомогою мови C# у програмі .NET. Ми коротко розглянемо такі підходи:
OMR Template Creator and Checker API – встановлення Створіть шаблон аркуша запитань OMR, зображення та файл PDF за допомогою C# Виконайте OMR на зображеннях аркушів відповідей із множинним вибором за допомогою C#
OMR Template Creator and Checker API – встановлення
Для створення шаблонів OMR і виконання операцій OMR у програмах C# або VB.NET, спочатку нам потрібно встановити Aspose.OMR for .NET API. Ви можете легко завантажити його з New Releases або за допомогою наступної команди NuGet:
Install-Package Aspose.OMR -Version 20.6.0
Таким чином, тепер ми готові продовжити створення ресурсів таблиць із запитаннями з кількома варіантами відповіді за допомогою API за допомогою C#:
Створіть шаблон аркуша запитань OMR, зображення та файл PDF за допомогою C#
Давайте дослідимо створення ресурсів аркушів запитань OMR. Тут ми зберігатимемо зразки запитань у файлі TXT, який пізніше використовуватиметься системою OMR для створення шаблону, зображення та PDF-файлу OMR. Крім того, нижче наведено текстову розмітку, яку ми будемо використовувати як вхідні дані для механізму 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:
- Ініціалізація OMR engine
- Викличте метод GenerateTemplate із текстовою розміткою
- Збережіть вихідний аркуш запитань OMR
Наступний фрагмент коду базується на цих кроках, які показують, як створити шаблон аркуша запитань OMR, зображення та файл PDF за допомогою C#:
// ініціалізувати двигун OMR
OmrEngine engine = new OmrEngine();
// генерація шаблону виклику, що містить шлях до текстового файлу з розміткою
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 на зображеннях аркушів відповідей із множинним вибором за допомогою C#
Нарешті, ви повинні зібрати відповіді на створених бульбашкових аркушах відповідей, а потім захопити зображення або відсканувати їх для виконання OMR за допомогою C#. У цьому прикладі розглянемо наступне зразок зображення. Aspose.OMR for .NET API створить файл із роздільниками-комами (CSV) як результат виконання OMR.

Давайте виконаємо такі кроки для виконання OMR за допомогою C#:
- Вкажіть шлях до файлу шаблону
- Вкажіть шлях до файлу сканованого зображення
- Ініціалізувати TemplateProcessor
- Розпізнайте зображення за допомогою методу RecognizeImage.
- Запис вихідних даних CSV у файл TXT
У наведеному нижче фрагменті коду показано, як виконувати OMR на зображеннях аркуша відповідей із множинними відповідями в C#:
string TemplateName = @"Sheet.omr";
string[] UserImages = new string[] { "Sheet1.jpg" };
// підготовка входу та виходу
string testFolderPath = dataDir;
string templatePath = Path.Combine(testFolderPath, TemplateName);
// фактичні виклики OMR API
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 for .NET API. Цю інформацію CSV тепер можна додатково обробляти відповідно до дизайну вашої системи.

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