Erkennen von MICR E-13B-Zeichen aus Bildern in .NET

Blog-Kategorie: OCR.NET

17.02.2022

Das VintaSoft Imaging .NET SDK mit dem VintaSoft OCR .NET Plug-in ermöglicht die Texterkennung aus Bildern mithilfe der Tesseract-OCR-Engine. Zahlreiche für die Tesseract-OCR-Engine erstellte Wörterbücher ermöglichen die Texterkennung in über 100 Sprachen.

Im Internet finden sich einige Autoren, die ihre kostenlosen Wörterbücher zur Erkennung von MICR E-13B-Symbolen mit der Tesseract-OCR-Engine anbieten.
Wir haben einige davon getestet und sichergestellt, dass das Wörterbuch "e13b.traineddata" eine gute Qualität bei der Erkennung von MICR-E-13B-Symbolen bietet, die mit der Erkennungsqualität professioneller MICR-E-13B-Symbolerkennungssysteme vergleichbar ist.
Das Wörterbuch "e13b.traineddata" wird unter der BSD-3-Lizenz angeboten, die die freie Nutzung und Weitergabe dieser Datei erlaubt.
Das Wörterbuch "e13b.traineddata" können Sie auf unserer Website herunterladen. Es ist aber auch über andere Internetquellen erhältlich.

Das Wörterbuch "e13b.traineddata" wurde seit Version 11.0.5.1 des VintaSoft OCR .NET Plug-ins in die Liste der unterstützten Wörterbücher (MICR-Eintrag in der Vintasoft.Imaging.Ocr.OcrLanguage-Enumeration) aufgenommen.

Weitere Informationen zu MICR-Symbolen finden Sie in Wikipedia: https://en.wikipedia.org/wiki/Magnetic_ink_character_recognition

Hier ist ein Bild von Wikipedia, das MICR E-13B-Symbole darstellt:



Hier ist C#-Code, der zeigt, wie man MICR E-13B-Symbole aus einem Bild mithilfe der Tesseract-OCR-Engine erkennt:
/// <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();
    }
}