El reconocimiento óptico de marcas, abreviado como OMR, se usa con frecuencia para evaluar cuestionarios, encuestas y otros estándares de recopilación de información. En este artículo, puede aprender cómo crear y verificar las hojas de preguntas y respuestas de burbujas OMR utilizando el lenguaje C# en una aplicación .NET. Exploraremos brevemente los siguientes enfoques:

API de OMR Template Creator and Checker – Instalación Crear plantilla de hoja de preguntas OMR, imagen y archivo PDF usando C# Realizar OMR en imágenes de hojas de respuestas con burbujas de opción múltiple mediante C#

OMR Template Creator and Checker API – Instalación

Para crear plantillas OMR y realizar operaciones OMR en aplicaciones C# o VB.NET, primero debemos instalar Aspose.OMR para la API .NET. Puede descargarlo fácilmente desde Nuevos lanzamientos o con el siguiente comando NuGet:

Install-Package Aspose.OMR -Version 20.6.0

Por lo tanto, ahora estamos listos para continuar con la creación de recursos de hoja de preguntas de opción múltiple con la API usando C#:

Cree una plantilla de hoja de preguntas OMR, una imagen y un archivo PDF con C#

Exploremos la creación de recursos de hojas de preguntas OMR. Aquí almacenaremos preguntas de muestra en un archivo TXT que luego utilizará el motor OMR para crear la plantilla, la imagen y el archivo PDF del cuestionario OMR. Además, el siguiente es el marcado de texto que usaremos como entrada para el motor 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________________________________

Ahora seguiremos estos pasos con el código C# para crear la hoja de preguntas de opción múltiple OMR:

  1. Inicializar motor OMR
  2. Llame al método GenerateTemplate con marcado de texto
  3. Guardar hoja de preguntas de salida OMR

El siguiente fragmento de código se basa en estos pasos que muestran cómo crear una plantilla de hoja de preguntas OMR, una imagen y un archivo PDF usando C#:

// inicializar el motor OMR
OmrEngine engine = new OmrEngine();

// generación de plantilla de llamada que proporciona la ruta al archivo txt con marcado
GenerationResult res = engine.GenerateTemplate(Path.Combine(testFolderPath, "Grid.txt"));

// comprobar en caso de errores
if (res.ErrorCode != 0)
{
    Console.WriteLine("ERROR CODE: " + res.ErrorCode);
}

// puede usar cualquiera de los siguientes enfoques
// guardar resultado de generación: plantilla PDF y .omr
res.SaveAsPdf(testFolderPath , "Grid");
// guardar resultado de generación: imagen y plantilla .omr
res.Save(testFolderPath, "Grid");

Así que hemos creado un cuestionario OMR como se muestra en la siguiente captura de pantalla. Puede distribuir documentos imprimiendo el archivo PDF generado o la imagen según sus requisitos.

plantilla OMR

Realice OMR en imágenes de hoja de respuestas de burbujas de opción múltiple usando C#

Finalmente, recopilaría las respuestas en las hojas de respuestas de burbujas generadas y luego capturaría imágenes o las escanearía para realizar OMR usando C#. En este ejemplo, consideremos la siguiente imagen de muestra. Aspose.OMR for .NET API creará un archivo separado por comas (CSV) como resultado de la realización de OMR.

crear omr

Sigamos estos pasos para realizar OMR usando C#:

  1. Especifique la ruta del archivo de plantilla
  2. Especifique la ruta del archivo de la imagen escaneada
  3. Inicializar TemplateProcessor
  4. Reconocer imágenes con el método RecognizeImage
  5. Escribir salida CSV en archivo TXT

El fragmento de código a continuación muestra cómo realizar OMR en imágenes de hojas de respuestas con burbujas de opción múltiple en C#:

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

// preparación de entrada y salida
string testFolderPath = dataDir;
string templatePath = Path.Combine(testFolderPath, TemplateName);

// llamadas API OMR reales
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"));
}

La siguiente captura de pantalla muestra con qué eficiencia y precisión se genera el archivo CSV de salida con Aspose.OMR for .NET API. Esta información CSV ahora se puede procesar más según el diseño de su sistema.

realizar omr

Conclusión

En pocas palabras, hemos aprendido cómo crear hojas de preguntas y luego realizar operaciones OMR para marcar imágenes de hojas de respuestas con burbujas usando C#. Esta creación de hojas OMR y luego realizar operaciones OMR en imágenes es muy útil en diferentes métodos de investigación. Además, en caso de cualquier inquietud o consulta, puede comunicarse con nosotros a través de Foros de soporte gratuitos.

Ver también