.NET에서 이미지의 MICR E-13B 문자 인식

블로그 카테고리: OCR.NET

2022/02/17

VintaSoft Imaging .NET SDKVintaSoft OCR .NET Plug-in을 사용하면 Tesseract OCR 엔진을 이용하여 이미지에서 텍스트를 인식할 수 있습니다. Tesseract OCR 엔진용으로 제작된 많은 사전은 100개 이상의 언어로 텍스트 인식을 실행할 수 있는 기능을 제공합니다.

인터넷에서 찾아보면 Tesseract OCR 엔진을 사용하여 MICR E-13B 기호를 인식하는 데 사용할 수 있는 무료 사전을 제공하는 저자는 거의 없습니다.
저희는 몇 가지를 테스트해 본 결과, "e13b.traineddata" 사전이 전문 MICR E-13B 기호 인식기의 인식 품질과 유사한 수준의 우수한 MICR E-13B 기호 인식 품질을 제공하는 것을 확인했습니다.
"e13b.traineddata" 사전은 BSD-3 라이선스에 따라 제공되므로 이 파일을 자유롭게 사용하고 재배포할 수 있습니다.
"e13b.traineddata" 사전은 당사 웹사이트에서 다운로드할 수 있으며, 다른 인터넷 자료에서도 다운로드할 수 있습니다.

VintaSoft OCR .NET Plug-in 버전 11.0.5.1부터 "e13b.traineddata" 사전이 지원되는 사전 목록(Vintasoft.Imaging.Ocr.OcrLanguage 열거형의 MICR 항목)에 추가되었습니다.

MICR 기호에 대한 자세한 정보는 위키피디아에서 확인할 수 있습니다: https://en.wikipedia.org/wiki/Magnetic_ink_character_recognition

다음은 MICR E-13B 기호를 나타내는 위키피디아 이미지입니다.



다음은 Tesseract OCR 엔진을 사용하여 이미지에서 MICR E-13B 기호를 인식하는 방법을 보여주는 C# 코드입니다.
/// <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();
    }
}