IRONSOFTWAREHOME
IRONOCR 사용

CodeProject의 C# OCR 튜토리얼: IronOCR 사용하여 이미지에서 텍스트 추출

칸나오팟 우돈판트
Kannapat Udonpant
Updated: 2026년 6월 28일

C#의 광학 문자 인식(OCR)을 통해 .NET 애플리케이션 내에서 스캔된 문서, 이미지 파일 및 TIFF 파일에서 기계로 읽을 수 있는 텍스트를 추출할 수 있습니다. IronOCR, .NET 네이티브 OCR 라이브러리를 사용하면 하나의 NuGet 패키지를 설치하고 몇 줄의 코드로 이미지에서 텍스트를 읽기 시작할 수 있습니다 - 외부 서비스 필요 없음, 런타임 종속성 없음, 호출당 API 요금 없음.

IronOCR 무료 체험을 시작하여 아래의 코드 샘플을 따라가십시오.

.NET 프로젝트에 IronOCR을 어떻게 설치합니까?

.NET 10 프로젝트에 OCR을 추가하는 가장 빠른 방법은 NuGet 패키지 관리자를 사용하는 것입니다. 프로젝트 디렉터리에서 터미널을 열고 .NET CLI 명령을 실행하거나 Visual Studio 내의 패키지 관리자 콘솔을 사용하세요:

PM > Install-Package IronOcr

설치 후 NuGet 패키지 관리자는 필요로 하는 모든 어셈블리를 다운로드하고 참조를 자동으로 설정합니다. IronOCR은 .NET Framework 4.6.2+, .NET Core 3.1+, .NET 5에서 .NET 10까지 지원하므로 콘솔 앱, ASP.NET Core 서비스, WPF 애플리케이션 및 Azure Functions에서 작동합니다.

로컬에서 테스트하기 위해 라이센스 키를 등록할 필요는 없으며, 라이센스가 적용될 때까지 출력에 체험판 워터마크가 나타납니다. 사용 지시문을 추가하고 프로덕션 준비가 되었을 때 시작 시 한 번 키를 전달하십시오:

using IronOcr;

// Apply license key before any OCR calls (production only)
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

가격 및 활성화 세부 정보는 IronOCR 라이센스 페이지를 참조하십시오.

이미지 파일에서 텍스트를 어떻게 추출합니까?

IronTesseract (엔진), OcrInput (입력 컨테이너), 그리고 OcrResult (출력)이라는 세 개의 객체로 구성된 기본적인 OCR 워크플로우가 있습니다. 아래 샘플은 PNG를 읽고 인식된 텍스트를 콘솔에 출력합니다.

using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
input.LoadImage("sample-document.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);

광학 문자 인식 출력

C# CodeProject 튜토리얼에서의 OCR: IronOCR로 이미지에서 텍스트 추출: 이미지 1 - OCR 출력 화면 캡처

IronTesseract는 Tesseract 5 엔진을 .NET 친화적인 기본값과 자동 모델 관리로 감싸줍니다. OcrInput.LoadImage는 PNG, JPEG, BMP, GIF, TIFF 및 WebP 파일을 허용하여 엔진에 이미지를 전달하기 전에 포맷을 변환할 필요가 거의 없습니다.

OcrResult.Text 속성은 모든 인식된 문자를 개행으로 연결한 일반 문자열을 반환합니다. 더 풍부한 접근을 위해 -- 단어 경계 상자, 신뢰도 점수, 단락별 텍스트 -- result.Pages, result.Paragraphs, result.Words, 그리고 result.Characters 컬렉션을 탐색하세요.

알아두면 좋은 주요 속성:

  • result.Pages[0].Text -- 한 페이지의 텍스트
  • result.Words[n].Textresult.Words[n].Confidence -- 단어별 정확도 (0.0 -- 1.0)
  • result.Pages[0].Paragraphs -- 구조적인 추출을 위한 단락 구분

또한 ocr.ReadAsync(input)를 호출하여 데스크톱 또는 웹 애플리케이션에서 UI 스레드를 무료로 사용할 수 있습니다.

스캔한 문서 및 TIFF 파일을 어떻게 처리합니까?

여러 페이지로 구성된 TIFF 파일은 문서 스캔 워크플로우에서 일반적입니다. IronOCR는 LoadImageFrames로 이를 처리하며, 처리할 프레임(페이지)을 정확히 선택할 수 있도록 하여 대규모 아카이브의 일부분만 필요할 때 유용합니다.

using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
int[] pageIndices = { 0, 1, 2 };
input.LoadImageFrames("scanned-documents.tiff", pageIndices);

// Correct skew and remove noise before reading
input.Deskew();
input.DeNoise();

OcrResult result = ocr.Read(input);

foreach (var page in result.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}:");
    Console.WriteLine(page.Text);
}

다중 페이지 TIFF 파일에서 OCR 출력

C# CodeProject 튜토리얼에서의 OCR: IronOCR로 이미지에서 텍스트 추출: 이미지 2 - 다중 페이지 TIFF OCR 출력

Deskew는 플랫베드 스캐너로 인한 기울어짐을 수정하기 위해 이미지를 회전시킵니다. DeNoise는 Tesseract 엔진을 혼란스럽게 하는 점과 JPEG 아티팩트를 제거합니다. 이 두 가지 전처리 필터는 저품질 스캔의 인식 정확도를 크게 향상시킵니다.

어려운 소스 자료를 위한 추가 OcrInput 필터 이용 가능:

  • input.Sharpen() -- 흐린 이미지의 가장자리 대비를 증가시킵니다.
  • input.Binarize() -- 팩스 품질 문서를 흑백으로 변환합니다.
  • input.Scale(200) -- 더 나은 문자 분리를 위해 작은 이미지를 업스케일합니다.
  • input.Rotate(90) -- 회전된 문서 방향을 수정합니다.

IronOCR 이미지 필터 가이드에서 전처리 옵션 및 적용 시기에 대한 전체 목록을 참조하세요.

OCR를 위한 언어 지원을 어떻게 구성합니까?

기본적으로 IronOCR은 영어 텍스트를 읽습니다. 다른 언어로 된 문서를 처리하려면 일치하는 언어 NuGet 패키지를 설치하고 Language 속성을 IronTesseract 인스턴스에 설정하세요.

dotnet add package IronOcr.Languages.German, IronOcr.Languages.French, IronOcr.Languages.Japanese

그런 다음 엔진을 구성하고, 이중 언어 문서의 경우 보조 언어를 추가하세요:

using IronOcr;
using IronOcr.Languages;

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.German;

// For bilingual documents (e.g. Canadian forms, EU directives)
ocr.AddSecondaryLanguage(OcrLanguage.French);

using var input = new OcrInput();
input.LoadImage("german-invoice.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);

IronOCR은 125개 이상의 언어를 지원하며, 각각 별도의 가벼운 NuGet 패키지로 배포됩니다. 이를 통해 생산 바이너리는 작게 유지되며 애플리케이션에서 실제로 필요한 언어 데이터만 포함됩니다. 엔진은 AddSecondaryLanguage를 호출할 때 인식 중에 주요 및 보조 언어 모델을 혼합합니다.

OCR 오류를 처리하고 인식 결과를 개선하려면 어떻게 해야 합니까?

생산 애플리케이션은 OCR 파이프라인 주변에 오류 처리가 필요합니다. 이미지 품질 문제, 누락된 파일 또는 지원되지 않는 형식은 예외를 일으킬 수 있습니다. try/catch 블록으로 호출을 감싸면 깨끗한 복구 경로를 제공합니다.

using IronOcr;

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;

try
{
    using var input = new OcrInput();
    input.LoadImage("document.png");
    input.DeNoise();
    input.Deskew();

    OcrResult result = ocr.Read(input);

    if (result.Text.Length > 0)
    {
        Console.WriteLine("Recognised text:");
        Console.WriteLine(result.Text);
    }
    else
    {
        Console.WriteLine("No text was detected in the image.");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"OCR error: {ex.Message}");
}

예상보다 정확도가 낮을 때 도움이 되는 몇 가지 추가 설정:

  • ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto -- Tesseract가 단일 열, 다중 열, 및 단일 단어 레이아웃 간에서 자동으로 선택하게 합니다.
  • ocr.Configuration.ReadBarCodes = false -- 텍스트 전용 문서를 처리하고 싶을 때 바코드 감지를 비활성화하여 더 빠른 처리량을 원할 때
  • ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5 -- 사용 가능한 가장 빠른 엔진을 사용하도록 보장합니다.

필드가 예측 가능한 위치에 나타나는 구조화된 양식의 경우 영역 기반 OCR을 사용하여 중요 부분만 읽으세요:

using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();

using var input = new OcrInput();
var region = new CropRectangle(x: 50, y: 200, width: 600, height: 100);
input.LoadImage("form.png", region);

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);

인식을 크롭 사각형으로 제한하면 대형 이미지 처리 시간을 최대 90% 줄일 수 있습니다. 이 기술은 송장 번호 추출, 양식 필드 읽기 및 ID 문서 스캔에 적합합니다. 영역 OCR 가이드에서 자세한 내용을 확인할 수 있습니다.

인식된 텍스트로 검색 가능한 PDF를 생성하는 방법은?

스캔된 이미지 아카이브를 검색 가능한 PDF 파일로 변환하는 것은 가장 가치가 높은 OCR 사용 사례 중 하나입니다. 결과 파일은 원본 시각적 모양을 유지하면서 PDF 뷰어, 검색 엔진 및 스크린 리더가 인덱싱할 수 있는 보이지 않는 텍스트 레이어를 포함합니다.

using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
input.Title = "Quarterly Report Q1 2026";
input.LoadImage("page1.png");
input.LoadImage("page2.png");
input.LoadImage("page3.png");

OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");

Console.WriteLine("Searchable PDF created.");
Console.WriteLine($"Pages processed: {result.Pages.Count}");

출력된 검색 가능한 PDF 문서

C# CodeProject 튜토리얼에서의 OCR: IronOCR로 이미지에서 텍스트 추출: 이미지 3 - 입력 이미지에서 생성한 검색 가능한 PDF

SaveAsSearchablePdf는 각 인식된 단어가 원본 이미지의 정확한 픽셀 좌표에 배치된 PDF/A 호환 파일을 작성합니다. Adobe Acrobat, macOS의 미리보기 및 Foxit Reader는 생성 직후 이 파일들에서 전체 텍스트 검색을 지원합니다.

웹 기반 문서 뷰어나 다운스트림 NLP 파이프라인의 경우에는 대신 result.SaveAsHocrFile("output.hocr")를 사용하세요. hOCR 형식은 텍스트와 함께 단어별 경계 상자를 인코딩하여 클라이언트 측 검색 하이라이트 및 단어 수준 접근성 주석을 가능하게 하는 공개 XML 표준입니다.

OcrResult에서 사용할 수 있는 추가 출력 형식:

  • result.SaveAsHocrFile("output.hocr") -- 위치 데이터가 포함된 hOCR XML
  • result.ToXDocument() -- 프로그래밍 처리를 위한 LINQ-쿼리 가능한 XDocument
  • result.Pages[0].Text -- 스트리밍 파이프라인에 사용할 페이지별 일반 텍스트

IronPDF와 이미 작업하고 있는 애플리케이션의 경우에는 OcrResult을 PDF 생성 워크플로우에 직접 파이프할 수 있어, OCR 추출을 PDF 편집과 단일 .NET 프로세스에서 결합할 수 있습니다.

텍스트와 함께 바코드를 읽는 방법은?

IronOCR은 인쇄된 텍스트와 같은 이미지에 내장된 바코드와 QR 코드를 읽을 수 있어, 별도의 바코드 라이브러리를 실행할 필요가 없습니다. 설정 속성 하나로 기능을 활성화하십시오:

using IronOcr;

var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;

using var input = new OcrInput();
input.LoadImage("shipping-label.png");

OcrResult result = ocr.Read(input);

Console.WriteLine("Text:");
Console.WriteLine(result.Text);

Console.WriteLine("Barcodes:");
foreach (var barcode in result.Barcodes)
{
    Console.WriteLine($"  {barcode.Format}: {barcode.Value}");
}

지원되는 바코드 형식에는 Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, PDF417, 데이터 매트릭스 및 QR 코드가 포함됩니다. 전체 세부 사항은 IronOCR 바코드 읽기 가이드에 있습니다.

이 기능은 특히 물류, 의료, 소매 애플리케이션에서 유용하며, 배송 라벨, 환자 팔찌, 제품 태그가 사람 읽을 수 있는 텍스트와 기계 읽을 수 있는 바코드를 모두 포함합니다.

IronOCR을 다른 .NET OCR 옵션과 비교하는 방법은?

.NET용 OCR 라이브러리를 평가하는 개발자는 보통 IronOCR, Tesseract.NET 및 Google Cloud Vision 또는 Azure 컴퓨터 비전와 같은 클라우드 서비스를 고려합니다. 아래 표는 주요 차이점을 요약합니다:

주요 개발자 기준에서 .NET OCR 옵션 비교
기준IronOCRTesseract.NETAzure 컴퓨터 비전
전개온프레미스 또는 클라우드, 외부 호출 없음온프레미스클라우드 전용, 인터넷 필요
설치단일 NuGet 패키지여러 패키지 + 네이티브 바이너리SDK + Azure 구독
언어 팩125+ NuGet 패키지를 통해 제공수동 tessdata 다운로드Azure에서 관리
검색 가능한 PDF 출력내장된 단일 메서드 호출포함되지 않음포함되지 않음
이미지 전처리내장된 12개 이상의 필터수동 전처리 필요자동(서버 사이드)
가격 모델한 번의 영구 라이센스오픈 소스(Apache 2.0)호출당 청구

Tesseract는 구글이 오픈 소스 프로젝트로서 유지 관리하며, IronOCR 및 Tesseract.NET의 기반이 됩니다. IronOCR은 .NET 적합 패키징, 자동 모델 관리, 그리고 원시 Tesseract 바인딩에 없는 프로덕션 출력 기능(검색 가능한 PDF, hOCR 내보내기)을 추가합니다. Azure 컴퓨터 비전은 최첨단의 클라우드 정확성을 제공하지만, 네트워크 지연 및 호출당 비용을 초래하여 대량 또는 오프라인 워크플로에는 적합하지 않습니다.

데이터 개인정보 보호 규제로 인해 외부 서비스로 문서를 전송할 수 없는 시나리오 -- 의료 기록, 법적 문서, 재무제표 --에서는 IronOCR과 같은 온프레미스 라이브러리가 적합한 선택입니다.

다음 단계는 무엇입니까?

이제 NuGet을 통한 설치, 기본 이미지-텍스트 추출, 다중 페이지 TIFF 처리, 언어 구성, 오류 처리, 영역 기반 읽기, 바코드 감지, 검색 가능한 PDF 생성 등 모든 .NET 10 애플리케이션에 OCR을 추가할 수 있는 구성 요소를 갖추고 있습니다.

더 깊이 탐구하려면 다음 IronOCR 리소스를 탐색하십시오:

라이선싱 질문이나 프로덕션 환경에 IronOCR을 배포하기 위해서는, IronOCR 라이선싱 페이지를 방문하십시오. 무료 체험판 라이선스를 사용하면 평가 기간 동안 출력물에 워터마크가 표시되지 않으며, Iron Software의 지원 팀은 모든 요금제에서 기술적 문의에 대해 도움을 드립니다.

첫 번째 단계:
arrow pointer

관련 기사

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.