VintaSoft Imaging .NET SDK 15.1: Документация для .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