Cómo leer cheques MICR usando IronOCR en C#

This article was translated from English: Does it need improvement?
Translated
View the article in English

El procesamiento manual de cheques es lento y propenso a errores. IronOCR agiliza este flujo de trabajo con un motor especializado que lee con precisión la línea MICR (reconocimiento de caracteres de tinta magnética), permitiéndole automatizar la extracción de números de ruta, números de cuenta y otros datos críticos.

como-título:2(Inicio rápido: OCR Leer MICR de Imagen de Cheque)

Utilice IronOCR para capturar rápidamente la línea MICR: establezca el Language en MICR, especifique la región rectangular donde aparece el texto MICR, ejecute Read() y obtenga inmediatamente la cadena result.Text. Perfecto para desarrolladores que desean una extracción confiable de datos financieros con una configuración mínima.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronOCR con el gestor de paquetes NuGet

    PM > Install-Package IronOcr

  2. Copie y ejecute este fragmento de código.

    string micrText = new IronOcr.IronTesseract { Language = IronOcr.OcrLanguage.MICR }.Read(new IronOcr.OcrInput().LoadImage("micr.png", new System.Drawing.Rectangle(125, 240, 310, 15))).Text;
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronOCR en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

¿Cómo leer los datos MICR de una imagen de cheque?

Leer una línea MICR con IronOCR es sencillo e intuitivo. Comience por establecer la propiedad Language de la instancia IronTesseract en OcrLanguage.Micr. Para garantizar que el motor lee el área correcta, especifique la ubicación de la línea MICR estableciendo un límite rectangular en el OcrInput.

Esto se consigue seleccionando las coordenadas x e y, así como la altura y la anchura del rectángulo del cuadro delimitador, y luego pasando el rectángulo como segundo parámetro al llamar al método Load. Llamar al método Read luego procesa solo esta región definida. Esta combinación del ajuste de idioma MICR y una región específica garantiza que IronOCR extraiga con precisión la información financiera relevante.

La tecnología MICR utiliza tinta magnética especial y una fuente única (E-13B en Norteamérica) que contiene exactamente 14 caracteres: los dígitos 0-9 y cuatro símbolos especiales. Estos símbolos incluyen el símbolo de tránsito (⑆), que marca los límites de los números de ruta; el símbolo on-us (⑈), que separa el número de cuenta de otros datos; el símbolo de cantidad (⑊), utilizado para cantidades codificadas; y el guión (⑉), que sirve de separador. Las propiedades magnéticas de esta tinta permiten una lectura fiable incluso cuando los cheques están doblados, estampados o ligeramente dañados, lo que hace que MICR sea ideal para el procesamiento de grandes volúmenes de cheques.

¿Qué aspecto tiene un cheque MICR?

Muestra de cheque que muestra la línea MICR con el número de ruta, el número de cuenta y el número de cheque etiquetados para la demostración de lectura MICR

¿Qué información contiene la línea MICR?

Número de cheque: Este número identifica de manera única el cheque específico del talonario de cheques del titular de la cuenta. Sirve como una referencia clara para rastrear pagos individuales y mantener registros de transacciones. En los sistemas de procesamiento automatizado, el número de cheque ayuda a evitar el procesamiento duplicado y facilita los procedimientos de conciliación.

Número de ruta: Este código de nueve dígitos, delimitado por el símbolo de tránsito ⑆, identifica la institución financiera que posee la cuenta. Es la primera pieza de información que una cámara de compensación utiliza para dirigir el cheque al banco correcto para el pago. El número de ruta sigue un formato específico: los cuatro primeros dígitos identifican el símbolo de ruta de la Reserva Federal, los cuatro siguientes identifican la institución y el último dígito es una suma de comprobación para la validación.

Número de cuenta: Este identifica la cuenta de cliente específica desde la cual se retirarán los fondos. Su longitud puede variar entre los distintos bancos, oscilando normalmente entre 10 y 12 dígitos. Los bancos pueden incluir códigos internos o identificadores de sucursal dentro de la estructura del número de cuenta.

¿Qué código necesito para extraer datos MICR?

:path=/static-assets/ocr/content-code-examples/how-to/read-micr-cheque.cs
using IronOcr;
using IronSoftware.Drawing;
using System;

// Create a new instance of IronTesseract for performing OCR operations
IronTesseract ocr = new IronTesseract();

// Set the OCR language to MICR to recognize magnetic ink characters
// Must have MICR (IronOcr.Languages.MICR) installed beforehand
ocr.Language = OcrLanguage.MICR;

// Specify the file path of the input image containing MICR text
using (var input = new OcrInput())
{
    // Specify the MICR of the image to focus on for OCR (coordinates in pixels)
    var contentArea = new Rectangle(x: 215, y: 482, width: 520, height: 20);
    input.LoadImage("micr.png", contentArea);

    // Optional: Save the cropped area for verification
    input.StampCropRectangleAndSaveAs(contentArea, Color.Aqua, "cropped.png");

    // Run the OCR engine to read the MICR text from the input image
    var result = ocr.Read(input);
    // Output the recognized text to the console
    Console.WriteLine(result.Text);

    // Transit number is the first 7 characters of the MICR string
    string transitNum = result.Text.Substring(0, 7);
    // Routing number starts from the 8th character and is 11 characters long
    string routingNum = result.Text.Substring(7, 11);
    // Account number starts from the 22nd character to the end of the string
    string accountNum = result.Text.Substring(22);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

El código muestra el flujo de trabajo completo para procesamiento de cheques MICR. Antes de ejecutar este código, asegúrese de haber instalado el paquete de idioma MICR a través de NuGet. La clase OcrInput proporciona potentes métodos para cargar y preprocesar imágenes, mientras que el parámetro Rectangle permite orientar con precisión la ubicación de la línea MICR.

¿Qué resultados puedo esperar?

Consola de depuración que muestra los resultados del análisis MICR con los números de tránsito, ruta y cuenta extraídos del cheque

El resultado anterior muestra las tres secciones obtenidas del cheque MICR: el número de tránsito, el número de ruta y el número de cuenta. Observe cómo se representan los símbolos MICR especiales en la salida: se trata de un comportamiento normal, ya que estos símbolos tienen representaciones Unicode específicas que pueden aparecer de forma diferente en la salida de la consola.

Resultados de OCR MICR

El objeto OcrResult proporciona información detallada sobre el escaneo:

Texto: El texto extraído de OcrInput. Esto incluye todos los caracteres y símbolos de la línea MICR, manteniendo su secuencia original.

Confianza: Indica la confianza de precisión estadística de un promedio de cada carácter, siendo uno el más alto y cero el más bajo. Para la lectura MICR, los niveles de confianza por encima de 0,9 son típicos debido al diseño estandarizado de la fuente. Más información sobre seguimiento de la confianza en los resultados de OCR.

Bloques, párrafos, líneas y palabras: La estructura jerárquica del texto reconocido, que para MICR suele consistir en una sola línea con múltiples segmentos de palabras separados por símbolos.

Datos de BarCode: Mientras procesa MICR, IronOCR puede detectar simultáneamente cualquier código de barras o código QR presente en el cheque.

¿Cómo puedo verificar la región de OCR correcta?

Para garantizar que ha seleccionado las coordenadas correctas para la línea MICR, puede visualizar el Área de contenido que definió. Una manera simple de hacer esto es dibujar el rectángulo en la imagen de entrada y guardarlo como un nuevo archivo con StampCropRectangleAndSaveAs. Esto lo ayuda a depurar y ajustar las coordenadas para un rendimiento óptimo.

Para encontrar las coordenadas de su rectángulo, utilice un editor de imágenes sencillo como MS Paint. Abra la imagen del cheque, pase el ratón por las esquinas superior izquierda e inferior derecha de la línea MICR y anote las coordenadas de píxel (x,y). A continuación, puede calcular las propiedades del rectángulo: (x1, y1, anchura, altura), donde anchura = x2-x1 y altura = y2-y1.

Para conocer técnicas más avanzadas de selección de regiones, explore OCR region targeting y content areas with PDFs.

Aquí está la imagen de salida después de dibujar el cuadro delimitador especificado en nuestro cheque de ejemplo.

Resultado

La línea MICR de un cheque muestra el número de ruta, el número de cuenta y el número de cheque resaltados en un recuadro rojo

El rectángulo azul claro confirma que hemos aislado correctamente la línea MICR para el procesamiento.

Consejos para optimizar el rendimiento

Al procesar varias comprobaciones, considere la posibilidad de implementar multithreading para mejorar el rendimiento. IronOCR gestiona las operaciones concurrentes de forma eficiente:

// Process multiple cheques in parallel
var chequeFiles = Directory.GetFiles("cheques/", "*.png");
Parallel.ForEach(chequeFiles, file =>
{
    using (var ocr = new IronTesseract { Language = OcrLanguage.MICR })
    using (var input = new OcrInput())
    {
        input.LoadImage(file, micrRegion);
        var result = ocr.Read(input);
        ProcessMicrData(result.Text);
    }
});
// Process multiple cheques in parallel
var chequeFiles = Directory.GetFiles("cheques/", "*.png");
Parallel.ForEach(chequeFiles, file =>
{
    using (var ocr = new IronTesseract { Language = OcrLanguage.MICR })
    using (var input = new OcrInput())
    {
        input.LoadImage(file, micrRegion);
        var result = ocr.Read(input);
        ProcessMicrData(result.Text);
    }
});
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Escenarios comunes de solución de problemas

Escaneados de baja calidad: Si trabajas con imágenes de comprobación de baja calidad, aplica filtros de preprocesamiento de imágenes para mejorar la legibilidad. La forma distintiva de la fuente MICR ayuda a mantener la precisión incluso con imágenes degradadas.

Reconocimiento de caracteres incorrectos: asegúrese de tener instalado el paquete de idioma MICR más reciente. La configuración lingüística especializada MICR está entrenada específicamente para el reconocimiento de fuentes E-13B.

Posiciones variables de la línea MICR: Los distintos bancos pueden colocar la línea MICR en lugares ligeramente diferentes. Considere la posibilidad de implementar la detección dinámica de regiones o mantener un archivo de configuración con coordenadas para diferentes formatos de comprobación.

Procesamiento de documentos financieros relacionados

Las capacidades de IronOCR van más allá del procesamiento de cheques. Explore estas funciones relacionadas para la automatización integral de documentos financieros:

Al dominar la lectura MICR con IronOCR, habrá dado el primer paso hacia un procesamiento de documentos financieros totalmente automatizado, reduciendo los errores de introducción manual y acelerando significativamente su flujo de trabajo.

Preguntas Frecuentes

¿Qué es MICR y por qué es importante para el procesamiento de cheques?

MICR (Magnetic Ink Character Recognition) es una tecnología que utiliza tinta magnética especial y fuentes únicas para codificar información financiera en cheques. El motor MICR especializado de IronOCR puede leer con precisión estos datos codificados, incluidos números de ruta, números de cuenta y números de cheque, automatizando lo que de otro modo sería un proceso manual lento y propenso a errores.

¿Cómo configuro el motor OCR para leer texto MICR?

Para leer texto MICR con IronOCR, es necesario establecer la propiedad Language de la instancia IronTesseract en OcrLanguage.MICR. Esto le indica al motor que utilice los algoritmos especializados de reconocimiento de caracteres MICR diseñados específicamente para leer la fuente E-13B utilizada en los cheques.

¿Puedo especificar exactamente en qué parte del cheque buscar los datos MICR?

Sí, IronOCR le permite especificar la ubicación exacta de la línea MICR mediante el establecimiento de un límite rectangular en el OcrInput. Esto se define seleccionando las coordenadas x e y, junto con la altura y el ancho del rectángulo del cuadro delimitador, y luego pasándolo como segundo parámetro al llamar al método Load.

¿Qué caracteres especiales se utilizan en la codificación MICR?

MICR utiliza 14 caracteres en total: dígitos 0-9 y cuatro símbolos especiales. Estos incluyen el símbolo de tránsito (⑆) para los límites del número de ruta, el símbolo on-us (⑈) para separar los números de cuenta, el símbolo de importe (⑊) para los importes codificados y el símbolo de guion (⑉) como separador. IronOCR puede reconocer todos estos caracteres específicos de MICR.

¿Con qué rapidez puedo extraer datos MICR de una imagen de cheque?

Con IronOCR, puede extraer datos MICR en una sola línea de código. Basta con crear una instancia IronTesseract con Language configurado como MICR, cargar la imagen con la región MICR especificada, llamar a Read() y acceder a la propiedad result.Text para obtener inmediatamente la cadena MICR extraída.

¿Qué tipo de información financiera puede extraerse de la línea MICR?

IronOCR puede extraer todos los datos financieros críticos codificados en la línea MICR, incluido el número de ruta (que identifica el banco), el número de cuenta (que identifica la cuenta específica) y el número de cheque (que identifica de forma exclusiva el cheque individual). Esta extracción automatizada agiliza el procesamiento de documentos financieros.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 5,246,844 | Versión: 2025.12 recién lanzado