VintaSoft Imaging .NET SDK 14.0: Документация для .NET разработчика
В этом разделе
    OCR: Как распознать символы MICR E-13B в изображении в .NET
    В этом разделе
    VintaSoft Imaging .NET SDK с VintaSoft OCR .NET Plug-in позволяет распознавать текст в изображении с помощью движка Tesseract OCR. Многие словари, созданные для движка Tesseract OCR, предоставляют возможность запускать распознавание текста в более более 100 языков.

    Некоторые авторы из Интернета предлагают свои бесплатные словари для распознавания символов MICR E-13B с использованием движка OCR Tesseract.
    Мы протестировали некоторые из них и убедились, что словарь "e13b.traineddata" обеспечивает хорошее качество распознавания символов MICR E-13B, сравнимое с качеством распознавания профессиональных распознавателей символов MICR E-13B.
    Словарь "e13b.traineddata" предлагается по лицензии BSD-3, которая позволяет бесплатное использование и распространение этого файла.
    Мы сделали словарь "e13b.traineddata" доступным для скачивания с нашего сайта , также словарь можно скачать с других интернет-ресурсов.

    Словарь "e13b.traineddata" добавлен в список поддерживаемых словарей (пункт MICR в перечислении Vintasoft.Imaging.Ocr.OcrLanguage), начиная с версии 11.0.5.1 VintaSoft OCR .NET Plug-in.

    Более подробная информация о MICR символах вы можете прочитать в Wikipedia: https://en.wikipedia.org/wiki/Magnetic_ink_character_recognition

    Вот изображение из Wikipedia, на котором изображены символы MICR E-13B:



    Вот C#/VB.NET код, который демонстрирует, как распознавать символы MICR E-13B на изображении с помощью движка Tesseract OCR:
    /// <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();
        }
    }
    
    ''' <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 Shared Sub RecognizeMicrE13BCharactersUsingTesseractOCR(filename As String)
        ' create an image collection
        Using images As 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 tesseractOcr As 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
                For Each image As Vintasoft.Imaging.VintasoftImage In images
                    System.Console.WriteLine("Recognize the image...")
    
                    ' recognize text in image
                    Dim ocrResult As Vintasoft.Imaging.Ocr.Results.OcrPage = tesseractOcr.Recognize(image)
    
                    ' output the recognized text
    
                    System.Console.WriteLine("Page Text:")
                    System.Console.WriteLine(ocrResult.GetText())
                    System.Console.WriteLine()
                Next
    
                ' shutdown the Tesseract OCR engine
                tesseractOcr.Shutdown()
            End Using
    
            ' free images
            images.ClearAndDisposeItems()
        End Using
    End Sub