Reconnaissance des caractères MICR E-13B à partir d'une image en .NET

Catégorie du blog: OCR.NET

17.02.2022

VintaSoft Imaging .NET SDK, associé au VintaSoft OCR .NET Plug-in, permet de reconnaître du texte à partir d'images grâce au moteur OCR Tesseract. De nombreux dictionnaires créés pour ce moteur permettent d'effectuer la reconnaissance de texte dans plus de 100 langues.

Peu d'auteurs proposent sur Internet leurs dictionnaires gratuits pour la reconnaissance des symboles MICR E-13B à l'aide du moteur OCR Tesseract.
Nous en avons testé certains et avons constaté que le dictionnaire "e13b.traineddata" offre une bonne qualité de reconnaissance des symboles MICR E-13B, comparable à celle des logiciels professionnels de reconnaissance de symboles MICR E-13B.
Le dictionnaire "e13b.traineddata" est distribué sous licence BSD-3, ce qui autorise sa libre utilisation et sa redistribution.
Nous mettons le dictionnaire " e13b.traineddata " à disposition en téléchargement depuis notre site web, et il peut également être téléchargé depuis d'autres ressources Internet.

Le dictionnaire "e13b.traineddata" est ajouté à la liste des dictionnaires pris en charge (élément MICR dans l'énumération Vintasoft.Imaging.Ocr.OcrLanguage) depuis la version 11.0.5.1 du VintaSoft OCR .NET Plug-in.

Vous trouverez des informations plus détaillées sur les symboles MICR sur Wikipédia: https://en.wikipedia.org/wiki/Magnetic_ink_character_recognition

Voici une image de Wikipédia représentant les symboles MICR E-13B:



Voici un code C# illustrant la reconnaissance des symboles MICR E-13B à partir d'une image à l'aide du moteur 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();
    }
}