Reconocer caracteres MICR E-13B a ​​partir de una imagen en .NET

Categoría del blog: OCR.NET

17.02.2022

VintaSoft Imaging .NET SDK con VintaSoft OCR .NET Plug-in permite reconocer texto de imágenes utilizando el motor OCR Tesseract. Muchos diccionarios creados para el motor OCR Tesseract brindan la capacidad de ejecutar el reconocimiento de texto en más de 100 idiomas.

Algunos autores en Internet recomiendan diccionarios gratuitos para el reconocimiento de símbolos MICR E-13B con el motor de OCR Tesseract.
Hemos probado algunos de ellos y nos hemos asegurado de que el diccionario "e13b.traineddata" ofrece una buena calidad de reconocimiento de símbolos MICR E-13B, comparable a la de los reconocedores profesionales de símbolos MICR E-13B.
El diccionario "e13b.traineddata" se ofrece bajo la licencia BSD-3, que permite el uso y la redistribución gratuitos de este archivo.
El diccionario "e13b.traineddata" está disponible para su descarga desde nuestro sitio web; también puede descargarse desde otros recursos de Internet.

El diccionario "e13b.traineddata" se agregó a la lista de diccionarios compatibles (elemento MICR en la enumeración Vintasoft.Imaging.Ocr.OcrLanguage) desde la versión 11.0.5.1 del VintaSoft OCR .NET Plug-in.

Puede encontrar información más detallada sobre los símbolos MICR en Wikipedia: https://en.wikipedia.org/wiki/Magnetic_ink_character_recognition

Aquí hay una imagen de Wikipedia que representa los símbolos MICR E-13B:



Aquí hay un código C# que demuestra cómo reconocer los símbolos MICR E-13B a ​​partir de una imagen con el motor de OCR Tesseract:
/// <summary>
/// Recognizes MICR E-13B characters from image using Tesseract OCR engine.
/// </summary>
/// <param name="filename">The name of file, which stores images with MICR E-13B characters.</param>
public static void RecognizeMicrE13BCharactersUsingTesseractOCR(string filename)
{
    // create an image collection
    using (Vintasoft.Imaging.ImageCollection images = 
        new Vintasoft.Imaging.ImageCollection())
    {
        // add images from file to the image collection
        images.Add(filename);

        System.Console.WriteLine("Create Tesseract OCR engine...");
        // create the Tesseract OCR engine
        using (Vintasoft.Imaging.Ocr.Tesseract.TesseractOcr tesseractOcr = 
            new Vintasoft.Imaging.Ocr.Tesseract.TesseractOcr())
        {
            System.Console.WriteLine("Initialize OCR engine...");
            // init the Tesseract OCR engine for recognition of MICR E-13B characters
            tesseractOcr.Init(new Vintasoft.Imaging.Ocr.OcrEngineSettings(Vintasoft.Imaging.Ocr.OcrLanguage.MICR));

            // for each image in image collection
            foreach (Vintasoft.Imaging.VintasoftImage image in images)
            {
                System.Console.WriteLine("Recognize the image...");
                
                // recognize text in image
                Vintasoft.Imaging.Ocr.Results.OcrPage ocrResult = tesseractOcr.Recognize(image);

                // output the recognized text

                System.Console.WriteLine("Page Text:");
                System.Console.WriteLine(ocrResult.GetText());
                System.Console.WriteLine();
            }

            // shutdown the Tesseract OCR engine
            tesseractOcr.Shutdown();
        }

        // free images
        images.ClearAndDisposeItems();
    }
}