Reconocer marcas OMR usando el VintaSoft Forms Processing .NET Plug-in

Categoría del blog: Forms processing.NET

28.07.2025

En el mundo actual, donde la cantidad de formularios en papel y electrónicos se cuenta por millones (desde cuestionarios hasta formularios de exámenes y papeletas), los requisitos para su procesamiento rápido y preciso aumentan cada año. Una de las herramientas clave para automatizar estos procesos se ha convertido en el reconocimiento óptico de marcas (OMR).

OMR (Reconocimiento óptico de marcas) es una tecnología que permite al software registrar y analizar la presencia o ausencia de marcas especiales (generalmente marcas de verificación, cuadrados o círculos rellenos) en ubicaciones predeterminadas en documentos en papel o electrónicos. Esto permite el procesamiento rápido de grandes cantidades de datos sin entrada manual, minimizando errores y acelerando los flujos de trabajo.


Breve historia del surgimiento y desarrollo del OMR

La tecnología de reconocimiento óptico de marcas comenzó a desarrollarse en la segunda mitad del siglo XX, cuando surgió la cuestión de automatizar el procesamiento de una gran cantidad de formularios, cuestionarios y hojas de examen similares. Los primeros sistemas industriales aparecieron en EE. UU. para las necesidades de las instituciones educativas, donde las pruebas masivas de estudiantes requerían un cálculo acelerado y confiable de los resultados.

En las primeras etapas del desarrollo del OMR, se utilizó equipo especial: escáneres con grandes fotosensores que registraban áreas sombreadas en el papel (burbujas o rectángulos rellenos). Esto permitió una reducción significativa en el tiempo requerido para verificar las respuestas en comparación con la verificación manual y hizo que el análisis de datos fuera más objetivo.

La tecnología evolucionó posteriormente con la transición al procesamiento digital de imágenes. Con la llegada de las computadoras personales y el software, el OMR estuvo disponible independientemente del tipo de escáner o impresora. Esto abrió oportunidades para su aplicación masiva en empresas, educación, gobierno, en cualquier lugar que requiera el procesamiento rápido y preciso de grandes volúmenes de documentos estándar.

Hoy en día, las soluciones OMR modernas permiten automatizar el trabajo no solo con formularios en papel, sino también con documentos electrónicos, integrando las tecnologías OMR en plataformas digitales unificadas. Esto garantiza una mayor flexibilidad, productividad y calidad de los datos finales.


Cómo funciona OMR y dónde se aplica

OMR se basa en el principio de seleccionar áreas para las marcas en un formulario (por ejemplo, en un cuestionario o formulario de prueba) y luego escanearlas automáticamente con un software especial.Esto permite:

OMR comienza con la creación de una plantilla de formulario especial con áreas designadas para las marcas. Una vez que el formulario se completa y se escanea (o se recibe electrónicamente), el software analiza la imagen, determina la posición y los límites de cada zona OMR y registra las marcas colocadas por el usuario.

Todo el proceso consta de varias etapas tecnológicas:

Dónde se utiliza:

OMR se utiliza en todas las áreas donde es necesario digitalizar de forma rápida y precisa grandes flujos de datos similares en papel o electrónicos.


¿Cuáles son las características de VintaSoft Forms Processing .NET Plug-in para OMR?

Las soluciones modernas para el reconocimiento de etiquetas no solo son rápidas, sino también flexibles en su configuración. Uno de los líderes tecnológicos en esta área es VintaSoft Forms Processing .NET Plug-in.

Este SDK ofrece compatibilidad total con la identificación y alineación automatizadas de formularios, el reconocimiento óptico de marcas y el reconocimiento de campos de texto y código de barras. Sus principales características incluyen:


¿Por qué las empresas eligen OMR con VintaSoft?

Para las empresas, procesar grandes cantidades de cuestionarios, pruebas o formularios estándar no solo requiere precisión, sino que también justifica la optimización de los procesos de negocio. El uso del VintaSoft Forms Processing .NET Plug-in permite:


Perspectiva tecnológica: Cómo funciona OMR en VintaSoft

Durante la operación, el software primero determina a qué plantilla pertenece la imagen de forma recibida, la alinea y solo entonces comienza a analizar los campos OMR. Esta arquitectura permite procesar formas incluso si se escanearon con cambios de rotación, desplazamiento o escala.

Las plantillas de formulario se crean utilizando editores de código y visuales dentro de aplicaciones WinForms o WPF. El desarrollador puede personalizar el tipo y la apariencia de los campos OMR y ampliar la arquitectura para sus propias tareas y formatos de documento.

El Reconocimiento Óptico de Marcas (OMR) es un estándar moderno para el procesamiento rápido y fiable de documentos impresos y electrónicos. Con el VintaSoft Forms Processing .NET Plug-in, el proceso se vuelve flexible, preciso, integrable en cualquier sistema corporativo y totalmente compatible con los requisitos de la transformación digital empresarial.


Aquí hay un código C# que demuestra cómo identificar y reconocer un formulario completo que contiene marcas OMR:
/// <summary>
/// Recognizes the form with OMR fields.
/// </summary>
/// <param name="formRecognitionManager">The form recognition manager.</param>
/// <param name="image">The image.</param>
public static void RecognizeFormWithOmrFields(
    Vintasoft.Imaging.FormsProcessing.FormRecognitionManager formRecognitionManager,
    Vintasoft.Imaging.VintasoftImage image)
{
    // if your form template contains OCR fields,
    // make sure OCR engine manager is initialized before recognition
    // (otherwise recognition will return null (Nothing)),
    // see OCR field recognition examples

    // recognize filled form in an image
    Vintasoft.Imaging.FormsProcessing.FormRecognitionResult recognitionResult = 
        formRecognitionManager.Recognize(image);

    // get the result of image comparison
    Vintasoft.Imaging.FormsProcessing.TemplateMatching.ImageImprintCompareResult imageCompareResult =
        recognitionResult.TemplateMatchingResult.ImageCompareResult;
    // if result is not reliable
    if (!imageCompareResult.IsReliable)
    {
        // matching template is not found
        System.Console.WriteLine("Matching template is not found.");
    }
    else
    {
        // get recognized page
        Vintasoft.Imaging.FormsProcessing.FormRecognition.FormPage recognizedPage = 
            recognitionResult.RecognizedPage;
        // get form field count
        if (recognizedPage.Items.Count == 0)
        {
            System.Console.WriteLine("No form fields were recognized.");
        }
        else
        {
            System.Console.WriteLine(string.Format(
                "Recognized form field count: {0}",
                recognizedPage.Items.Count));
            // for each recognized form field
            foreach (Vintasoft.Imaging.FormsProcessing.FormRecognition.FormField recognizedField in recognizedPage.Items)
            {
                if (recognizedField is Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrField)
                {
                    Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrField omrField = 
                        (Vintasoft.Imaging.FormsProcessing.FormRecognition.Omr.OmrField)recognizedField;
                    // write field info
                    System.Console.WriteLine(string.Format(
                        "  OMR field: name: {0}; state: {1}; confidence: {2:F1}%",
                        omrField.Name,
                        omrField.State,
                        omrField.Confidence * 100));
                }
            }
        }
    }
}