C#에서 OCR을 사용하여 특정 문서를 읽는 방법

How to Read Specialized Documents with C# and IronOCR

This article was translated from English: Does it need improvement?
Translated
View the article in English

일반적인 텍스트 문서, 차량 번호판, 여권, 사진과 같은 특정 문서를 단일한 방법으로 정확하게 판독하는 것은 매우 어렵습니다. 이러한 어려움은 각 문서 유형의 다양한 형식, 레이아웃 및 내용뿐 아니라 이미지 품질, 왜곡 및 특수 콘텐츠의 차이에서 비롯됩니다. 또한 문서 유형이 다양해질수록 맥락을 이해하고 성능과 효율성의 균형을 맞추는 것이 더욱 복잡해집니다.

IronOCR 일반 텍스트 문서, 차량 번호판, 여권, 사진 등 특정 문서에 대한 OCR을 수행하여 최적의 정확도와 성능을 달성하는 구체적인 방법을 소개합니다.

빠른 시작: 여권을 한 줄로 읽기

IronOCR의 ReadPassport 확장을 사용하여 최소한의 설정으로 모든 주요 여권 세부 정보를 추출하세요. IronOCR와 AdvancedScan을 설치했다고 가정했을 때 코드 한 줄로 이름, 여권 번호, 국가 등과 같은 구조화된 결과 데이터를 빠르고 쉽게 얻을 수 있습니다.

  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronOcr 설치하기

    PM > Install-Package IronOcr
  2. 다음 코드 조각을 복사하여 실행하세요.

    var result = new IronTesseract().ReadPassport(new OcrInput().LoadImage("passport.jpg"));
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronOCR 사용 시작하기

    arrow pointer


패키지 소개

메서드 ReadLicensePlate, ReadPassport, ReadPhotoReadScreenShot는 기본 IronOCR 패키지에 대한 확장 메서드이며, IronOcr.Extensions.AdvancedScan 패키지를 설치해야 합니다.

이 메서드는 블랙리스트 및 화이트리스트와 같은 OCR 엔진 구성과 함께 작동합니다. 여러 언어가 지원되며, 중국어, 일본어, 한국어, LatinAlphabet이 포함되지만 ReadPassport 메서드는 제외됩니다. 각 언어마다 추가 언어 패키지인 IronOCR 가 필요하다는 점에 유의하십시오.

.NET Framework 에서 고급 검사를 사용하려면 프로젝트가 x64 아키텍처에서 실행되어야 합니다. 이 작업을 수행하려면 프로젝트 구성으로 이동하여 "32비트 우선" 옵션의 선택을 해제하십시오. 자세한 내용은 다음 문제 해결 가이드 " .NET Framework 고급 검사 "를 참조하십시오.

문서 예시 읽기

ReadDocument 메서드는 스캔된 문서나 많은 텍스트를 포함한 종이 문서의 사진을 전문으로 하는 강력한 문서 읽기 메서드입니다. PageSegmentationMode 설정은 레이아웃이 다른 텍스트 문서를 읽을 때 매우 중요합니다.

예를 들어 SingleBlockSparseText 유형은 테이블 레이아웃에서 많은 정보를 추출할 수 있습니다. 이는 SingleBlock은 텍스트가 블록 형태로 유지된다고 가정하는 반면, SparseText는 텍스트가 문서 전체에 흩어져 있다고 가정하기 때문입니다.

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-document.cs
using IronOcr;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

// Configure OCR engine
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;

using var input = new OcrInput();

input.LoadPdf("Five.pdf");

// Perform OCR
OcrResult result = ocr.ReadDocument(input);

Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

아래 메서드들은 기본 IronOCR 패키지에 대한 확장 메서드이며, IronOCR 패키지가 설치되어 있어야 합니다.

차량 번호판 예시를 읽어보세요

ReadLicensePlate 메서드는 사진에서 차량 번호판을 읽는 데 최적화되어 있습니다. 이 메서드에서 반환되는 특수 정보는 Licenseplate 속성으로, 제공된 문서에서 차량 번호판의 위치 정보를 포함합니다.

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-license-plate.cs
using IronOcr;
using IronSoftware.Drawing;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputLicensePlate = new OcrInput();

inputLicensePlate.LoadImage("LicensePlate.jpeg");

// Perform OCR
OcrLicensePlateResult result = ocr.ReadLicensePlate(inputLicensePlate);

// Retrieve license plate coordinates
Rectangle rectangle = result.Licenseplate;

// Retrieve license plate value
string output = result.Text;
$vbLabelText   $csharpLabel

여권 예시를 읽어보세요

ReadPassport 메서드는 사진에서 기계 판독 영역(MRZ) 내용을 스캔하여 여권 정보를 추출하는 데 최적화되어 있습니다. MRZ(방문 제한 구역)는 여권, 신분증, 비자 등의 공식 문서에 특별히 지정된 구역입니다. MRZ에는 일반적으로 소지자의 이름, 생년월일, 국적 및 문서 번호와 같은 필수 개인 정보가 포함됩니다. 현재 이 방법은 영어만 지원합니다.

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-passport.cs
using IronOcr;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputPassport = new OcrInput();

inputPassport.LoadImage("Passport.jpg");

// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);

// Output passport information
Console.WriteLine(result.PassportInfo.GivenNames);
Console.WriteLine(result.PassportInfo.Country);
Console.WriteLine(result.PassportInfo.PassportNumber);
Console.WriteLine(result.PassportInfo.Surname);
Console.WriteLine(result.PassportInfo.DateOfBirth);
Console.WriteLine(result.PassportInfo.DateOfExpiry);
$vbLabelText   $csharpLabel

결과

여권을 읽어보세요

문서에는 여권 사진만 포함되어 있는지 확인해 주십시오. 머리글이나 바닥글에 텍스트가 있으면 해당 메서드가 혼란스러워져 예상치 못한 결과가 발생할 수 있습니다.

사진 예시를 읽어보세요

ReadPhoto 메서드는 읽기 어려운 텍스트가 포함된 이미지를 읽는 데 최적화되어 있습니다. 이 메서드는 감지된 텍스트에 대한 유용한 정보(예: 영역 , 영역 내 텍스트 , 프레임 번호) 를 포함하는 TextRegions 속성을 반환합니다.

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-photo.cs
using IronOcr;
using IronSoftware.Drawing;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputPhoto = new OcrInput();
inputPhoto.LoadImageFrame("photo.tif", 2);

// Perform OCR
OcrPhotoResult result = ocr.ReadPhoto(inputPhoto);

// index number refer to region order in the page
int number = result.TextRegions[0].PageNumber;
string textinregion = result.TextRegions[0].TextInRegion;
Rectangle region = result.TextRegions[0].Region;
$vbLabelText   $csharpLabel

스크린샷 예시를 읽어보세요

ReadScreenShot 메서드는 읽기 어려운 텍스트가 포함된 스크린샷을 읽는 데 최적화되어 있습니다. ReadPhoto 메서드와 마찬가지로 TextRegions 속성도 반환합니다.

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-screenshot.cs
}
using IronOcr;
using System;
using System.Linq;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputScreenshot = new OcrInput();
inputScreenshot.LoadImage("screenshot.png");

// Perform OCR
OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot);

// Output screenshoot information
Console.WriteLine(result.Text);
Console.WriteLine(result.TextRegions.First().Region.X);
Console.WriteLine(result.TextRegions.Last().Region.Width);
Console.WriteLine(result.Confidence);
}
$vbLabelText   $csharpLabel

자주 묻는 질문

C#에서 OCR을 사용하여 차량 번호판을 읽는 방법은 무엇인가요?

IronOCR에서 제공하는 ReadLicensePlate 메서드를 사용하면 사진에서 차량 번호판을 정확하게 읽을 수 있습니다. 이 메서드는 번호판 텍스트와 위치 정보를 반환합니다.

여권 사진에서 정보를 추출하는 가장 좋은 방법은 무엇일까요?

IronOCR의 ReadPassport 방식은 여권 사진의 기계 판독 영역(MRZ)을 스캔하여 이름, 생년월일, 여권 번호와 같은 필수 정보를 추출하도록 설계되었습니다.

IronOCR은 알아보기 어려운 텍스트가 포함된 사진 속 텍스트를 읽을 수 있나요?

네, IronOCR의 ReadPhoto 메서드는 읽기 어려운 텍스트가 포함된 이미지를 읽도록 최적화되어 있으며, 감지된 텍스트와 해당 영역에 대한 자세한 데이터를 제공합니다.

IronOCR을 사용하여 스크린샷에서 텍스트를 읽을 수 있습니까?

네, 맞습니다. IronOCR의 ReadScreenShot 메서드는 스크린샷의 텍스트를 처리하는 데 특화되어 있으며, 자세한 텍스트 영역 정보를 제공합니다.

레이아웃이 복잡한 문서의 OCR 정확도를 높이려면 어떻게 해야 할까요?

복잡한 문서 레이아웃에서 OCR 정확도를 높이려면 IronOCR에서 PageSegmentationMode 를 구성하십시오. SingleBlock 및 SparseText와 같은 옵션은 표 레이아웃에서 정보를 추출하는 데 특히 유용합니다.

.NET Framework 프로젝트에서 IronOCR의 고급 검사 기능이 작동하지 않으면 어떻게 해야 하나요?

.NET Framework에서 IronOCR의 고급 검사 기능 관련 문제를 해결하려면 프로젝트 설정에서 '32비트 우선' 옵션의 선택을 해제하여 프로젝트가 x64 아키텍처에서 실행되도록 설정하십시오.

IronOCR에 언어 지원 제한 사항이 있나요?

IronOCR은 중국어, 일본어, 한국어, 라틴 알파벳을 포함한 여러 언어를 지원합니다. 하지만 현재 ReadPassport 방식은 영어로 작성된 문서만 지원합니다.

IronOCR의 고급 스캔 기능을 사용하려면 무엇이 필요합니까?

IronOCR의 고급 스캔 기능을 사용하려면 Windows에서만 사용할 수 있는 IronOcr.Extensions.AdvancedScan 패키지가 필요합니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
Nuget 다운로드 5,525,971 | 버전: 2026.3 방금 출시되었습니다
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronOcr
샘플을 실행하세요 이미지가 검색 가능한 텍스트로 바뀌는 것을 확인해 보세요.