Riconoscere i caratteri MICR E-13B dall'immagine in .NET

Categoria del blog: OCR.NET

17.02.2022

VintaSoft Imaging .NET SDK con VintaSoft OCR .NET Plug-in consente di riconoscere il testo dalle immagini utilizzando il motore OCR Tesseract. Molti dizionari creati per il motore OCR Tesseract offrono la possibilità di eseguire il riconoscimento del testo in più di 100 lingue.

Pochi autori trovati su Internet suggeriscono i loro dizionari gratuiti per il riconoscimento dei simboli MICR E-13B utilizzando il motore OCR Tesseract.
Ne abbiamo testati alcuni e ci siamo assicurati che il dizionario "e13b.traineddata" fornisca una buona qualità di riconoscimento dei simboli MICR E-13B, paragonabile alla qualità di riconoscimento dei riconoscitori di simboli MICR E-13B professionali.
Il dizionario "e13b.traineddata" è offerto con licenza BSD-3, che consente il libero utilizzo e la ridistribuzione di questo file.
Rendiamo disponibile per il download il dizionario "e13b.traineddata" dal nostro sito web; il dizionario può essere scaricato anche da altre risorse Internet.

Il dizionario "e13b.traineddata" è stato aggiunto all'elenco dei dizionari supportati (voce MICR nell'enumerazione Vintasoft.Imaging.Ocr.OcrLanguage) a partire dalla versione 11.0.5.1 del VintaSoft OCR .NET Plug-in.

Per informazioni più dettagliate sui simboli MICR, consulta Wikipedia: https://en.wikipedia.org/wiki/Magnetic_ink_character_recognition

Ecco un'immagine da Wikipedia che rappresenta i simboli MICR E-13B:



Ecco il codice C# che illustra come riconoscere i simboli MICR E-13B da un'immagine utilizzando il motore 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();
    }
}