IRONSOFTWAREHOME

C#의 WORD 및 문자 OCR 데이터 (좌표, 신뢰도, 바운딩 박스)

Darrius Serrant
Darrius Serrant
Updated: 2026년 5월 15일

문서에 OCR을 실행한 후, 추출된 텍스트만으로는 종종 충분하지 않습니다. 페이지에서 특정 값을 찾거나, 품질이 낮은 탐지 결과를 제외하거나, 다중 열 레이아웃에서 자연스러운 읽기 순서를 재구성하려면 WORD별 좌표, 페이지 번호, 영역 인덱스 및 신뢰도 점수가 필요합니다.

WordsCharacters 컬렉션은 AdvancedOcrResultBase에서 이 데이터를 노출합니다. 레이아웃 인식 문서에 대한 ReadDocumentAdvanced()과 카메라 입력에 대한 ReadPhoto() 모두 표준 OcrResult.Words 컬렉션을 통해 사용 가능한 동일한 세분성을 반환합니다.

이 가이드에서는 WORD 데이터 반복 처리, 읽기 순서 재구성, 신뢰도 기반 필터링, 문자 단위 작업, 바운딩 박스를 이용한 원본 이미지 자르기 등 다섯 가지 일반적인 패턴을 단계별로 설명합니다.

30일 무료 체험을 시작하여 파이프라인에서 이 컬렉션들을 테스트해 보세요.

NuGetNuGet을 사용하여 설치하세요

PM > Install-Package IronOcr

Install IronOCR by running the command above in the NuGet Package Manager Console, or search for the package in the NuGet Package Manager.
빠른 시작: OCR 결과에서 WORD 및 문자 데이터 읽기

ReadDocumentAdvanced (또는 ReadPhoto)을 호출하여 result.Words을 반복하면 몇 줄 안에 좌표, 페이지 번호, 신뢰도 점수와 함께 인식된 모든 단어를 얻을 수 있습니다.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2다음 코드 조각을 복사하여 실행하세요.

    var result = new IronTesseract().ReadDocumentAdvanced(new OcrInput("scan.png"));
    foreach (var word in result.Words)
        Console.WriteLine($"{word.Text} @ ({word.X},{word.Y}) conf:{word.RegionConfidence:P0}");
    C#
  3. 3실제 운영 환경에서 테스트할 수 있도록 배포하세요.

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

좌표와 신뢰도를 사용하여 WORD를 반복하는 방법은 무엇입니까?

Words 컬렉션은 모든 페이지에서 감지된 모든 단어를 반환합니다. 각 항목(둘 다 AdvancedOcrElement에서 상속받는 AdvancedWord 또는 AdvancedCharacter)은 텍스트, 픽셀 좌표, 크기, 소속 페이지, 탐지된 텍스트 블록의 식별자, 해당 지역의 신뢰도 점수를 노출합니다.

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("receipt.png");

var result = ocr.ReadDocumentAdvanced(input);

foreach (var word in result.Words)
{
    Console.WriteLine(
        $"Page {word.PageNumber} | " +
        $"'{word.Text}' | " +
        $"Position: ({word.X}, {word.Y}) | " +
        $"Size: {word.Width}x{word.Height} | " +
        $"Confidence: {word.Confidence:P1}"
    );
}

// ToString() override for diagnostic logging
Console.WriteLine(result.Words.First().ToString());
C#
팁: PageNumber는 1베이스입니다: 페이지 1은 1이며, 0가 아닙니다. 이는 0을 기준으로 인덱싱하는 대부분의 .NET 컬렉션과는 다릅니다. RegionIndex은 표준 0-기준 규칙을 따릅니다.

그리기나 크롭핑 API에 좌표를 전달하려면 BoundingBox 속성을 사용하십시오. 위치와 크기를 하나의 IronSoftware.Drawing.Rectangle에 묶습니다.

읽기 순서는 어떻게 재구성하나요?

다중 열 레이아웃에서 Words 컬렉션의 반복 순서는 페이지의 시각적 읽기 순서와 일치하지 않습니다. WORD는 감지된 영역별로 그룹화되므로, 열과 테이블 셀이 순서대로 반환되지 않을 수 있습니다.

자연스러운 상단에서 하단, 왼쪽에서 오른쪽으로의 순서를 재구성하려면, 먼저 Y 좌표 순으로 정렬한 다음 각 행 내에서 X 좌표 순으로 정렬하십시오. 작은 Y 좌표 허용 오차를 적용하여 동일한 기준선에 위치한 WORD들을 그룹화합니다.

using IronOcr;
using System.Linq;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("multi-column-doc.png");

var result = ocr.ReadDocumentAdvanced(input);

int targetPage = 1;
int lineThreshold = 10; // pixel tolerance for grouping same-line words

// Sort by line (Y), then left-to-right (X)
var pageWords = result.Words
    .Where(w => w.PageNumber == targetPage)
    .OrderBy(w => w.Y / lineThreshold)
    .ThenBy(w => w.X)
    .ToList();

foreach (var word in pageWords)
{
    Console.Write($"{word.Text} ");
}
Console.WriteLine();

문서에 맞춰 lineThreshold을 조정하십시오: 300 DPI에서 표준 12pt 텍스트의 경우 10-15 픽셀이 효과적입니다. 큰 제목이나 수기 입력의 경우 허용 범위가 더 넓어야 합니다. 이 패턴은 특히 여러 열로 구성된 페이지나 테이블 셀 내부에서 유용하며, 이 경우 엔진이 각 열이나 셀을 독립된 영역으로 인식합니다.

신뢰도가 낮은 WORD는 어떻게 필터링하나요?

데이터베이스, 검색 색인 또는 다운스트림 추출에 도달하기 전의 저품질 감지를 제외하려면 RegionConfidence로 컬렉션을 필터링하십시오. 점수 범위는 0.0에서 1.0까지이며, 값이 높을수록 감지된 텍스트에 대한 신뢰도가 높음을 나타냅니다.

using IronOcr;
using System.Linq;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("noisy-scan.png");

var result = ocr.ReadDocumentAdvanced(input);

double threshold = 0.75;

var highConfidenceWords = result.Words
    .Where(w => w.Confidence >= threshold)
    .ToList();

var lowConfidenceWords = result.Words
    .Where(w => w.Confidence < threshold)
    .ToList();

Console.WriteLine($"Accepted: {highConfidenceWords.Count} words");
Console.WriteLine($"Rejected: {lowConfidenceWords.Count} words");

// Log rejected words for manual review
foreach (var word in lowConfidenceWords)
{
    Console.WriteLine(
        $"  LOW CONF: '{word.Text}' at ({word.X},{word.Y}) — {word.Confidence:P1}"
    );
}
C#

품질이 혼합된 스캔(일부 영역은 선명하지만 다른 부분은 품질이 저하된 경우)의 경우, 이를 통해 신뢰도가 낮은 출력이 하류 시스템으로 전달되는 것을 방지합니다. 원본의 신뢰도 점수를 높이기 위해, 이미지 전처리 필터(Deskew, DeNoise, Binarize)를 사용하여 임계값을 적용하기 전에 품질을 개선합니다.

문자 단위로 반복 작업을 수행하는 방법은 무엇입니까?

OCR 검증 오버레이, 기본 데이터 대비 문자 수준 차이 확인이나 양식 필드에 대한 정밀한 공간 분석을 위해 Characters 컬렉션을 사용하십시오. 이는 Words를 반영하나 개별 문자로 해상도를 낮춥니다.

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("form-field.png");

var result = ocr.ReadDocumentAdvanced(input);

foreach (var ch in result.Characters)
{
    Console.WriteLine(
        $"'{ch.Text}' | " +
        $"Box: ({ch.X}, {ch.Y}, {ch.Width}, {ch.Height}) | " +
        $"Page {ch.PageNumber}"
    );
}

// ToString() override provides diagnostic-friendly output
Console.WriteLine(result.Characters.First().ToString());
참고해 주세요: WordsCharacters는 모두 게으르게 계산되고 캐시됩니다. 첫 번째 액세스가 계산을 트리거합니다; (이후 액세스 시에는 캐시된 결과가 반환되므로, 두 번째 반복 시에는 비용이 들지 않습니다.

바운딩 박스를 사용하여 원본 이미지를 자르는 방법은 무엇입니까?

검증, 주석 추가 또는 라벨링된 학습 데이터를 빌드하기 위해 단어의 시각적 영역을 추출하려면 AnyBitmap.CropRegion()BoundingBox 속성을 전달하십시오. 바운딩 박스는 원본 이미지 내 WORD의 위치와 직접적으로 일치합니다.

using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("invoice.png");

var result = ocr.ReadDocumentAdvanced(input);

// Load the original image for cropping
var originalImage = AnyBitmap.FromFile("invoice.png");

// Find a specific word and crop its region
var targetWord = result.Words.FirstOrDefault(w => w.Text == "Total");
if (targetWord != null)
{
    Rectangle cropRect = targetWord.BoundingBox;
    AnyBitmap croppedRegion = originalImage.Clone(cropRect);
    croppedRegion.SaveAs("total-region.png");

    Console.WriteLine(
        $"Cropped '{targetWord.Text}' from " +
        $"({cropRect.X}, {cropRect.Y}, {cropRect.Width}, {cropRect.Height})"
    );
}

이 패턴은 대량 작업에도 확장 가능합니다: 모든 WORD를 반복 처리하고, 각 상자를 잘라낸 다음, 사용자 지정 폰트 훈련이나 후속 ML 파이프라인을 위해 라벨이 지정된 데이터 세트를 내보냅니다. 좌표는 전처리 후 이미지를 반영합니다; EnhanceResolution와 같은 필터가 크기를 변경한 경우, 경계 사각형은 디스크에 있는 원본이 아닌 처리된 이미지와 일치합니다.

다음 단계

고급 파이프라인은 추가 레이아웃 정보와 함께 IronTesseract.Read()과 동일한 공간 세부 사항을 제공합니다. 관련 주제:

30일 무료 체험을 시작하거나 라이선스 옵션을 확인해 보세요.

자주 묻는 질문

C#의 고급 OCR이란?

C#의 고급 OCR은 IronOCR의 고급 파이프라인을 활용하여 좌표, 신뢰도 수준, 경계 상자 등을 포함한 상세한 단어 및 문자 데이터를 추출하는 과정입니다.

IronOCR로 단어 데이터를 어떻게 액세스할 수 있습니까?

IronOCR에서는 AdvancedWord 컬렉션을 반복하여 스캔된 문서의 각 단어 위치 및 신뢰도 점수에 대한 자세한 정보를 제공받을 수 있습니다.

OCR에서 경계 상자의 중요성은 무엇입니까?

경계 상자는 OCR에서 인식된 텍스트 요소의 정확한 위치 및 크기를 정의하여 정확한 텍스트 추출 및 이미지 조작을 가능하게 하므로 중요합니다.

OCR 결과를 신뢰도 점수에 따라 필터링할 수 있습니까?

네, IronOCR를 사용하면 높은 인식 정확성을 가진 텍스트만 추가 처리에 고려하도록 OCR 결과를 신뢰도 점수에 따라 필터링할 수 있습니다.

OCR 결과에서 읽기 순서를 어떻게 재구성합니까?

IronOCR이 제공하는 AdvancedWord 및 AdvancedCharacter 객체의 순서를 분석하여 문서의 자연스러운 읽기 흐름을 반영하는 OCR 결과에서 읽기 순서를 재구성할 수 있습니다.

IronOCR을 사용하여 소스 이미지를 자르는 것이 가능합니까?

IronOCR은 인식된 단어 및 문자의 경계 상자 및 좌표를 포함한 텍스트 데이터 분석에 기초해 소스 이미지를 자를 수 있습니다.

AdvancedWord 및 AdvancedCharacter 컬렉션이란?

IronOCR의 AdvancedWord 및 AdvancedCharacter 컬렉션은 각 인식된 단어 및 문자의 좌표, 신뢰도 수준, 경계 상자를 포함한 상세 정보를 저장하는 데이터 구조입니다.

IronOCR은 문자 인식을 어떻게 처리합니까?

IronOCR은 각 문자의 특징을 분석하여 그 위치, 크기, 인식 신뢰도와 같은 상세 데이터를 제공하는 고급 파이프라인을 활용해 문자 인식을 처리합니다.

IronOCR로 처리할 수 있는 문서 유형은 무엇입니까?

IronOCR은 PDF, 스캔 이미지, 사진을 포함한 다양한 문서 유형을 처리하여 높은 정확도와 세부 사항으로 텍스트 데이터를 추출합니다.

How can OCR results be used for custom font training or machine learning?

OCR results, including cropped image regions and labeled datasets derived from bounding boxes, can be used to train custom fonts or feed machine learning pipelines. IronOCR facilitates these processes with its detailed spatial data extraction capabilities.

Darrius Serrant
풀스택 소프트웨어 엔지니어 (웹 운영)

다리우스 세런트는 마이애미 대학교에서 컴퓨터 과학 학사 학위를 받았으며, Iron Software에서 풀 스택 웹 운영 마케팅 엔지니어로 근무하고 있습니다. 어린 시절부터 코딩에 매료되었던 그는 컴퓨팅이 신비로우면서도 접근하기 쉬운 분야라고 생각했고, 창의력과 문제 해결 능력을 발휘하기에 완벽한 매체라고 여겼습니다.

...
더 읽어보기

시작할 준비 되셨나요?

Nuget Downloads 6,236,385버전:2026.9방금 출시

지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.
PDF용 C# NuGet 라이브러리
NuGet을 사용하여 설치하세요

버전: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리를 선택합니다.
  2. 찾아보기를 선택하고 "IronOCR"을 검색하세요.
  3. 패키지를 선택하고 설치하세요
C# PDF DLL
DLL 다운로드

버전: 2026.9

또는 여기에서 Windows 설치 프로그램을 다운로드하십시오.

  1. IronOCR을 다운로드하고 솔루션 디렉터리 내의 ~/Libs와 같은 위치에 압축을 푸세요.
  2. Visual Studio 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭합니다. 찾아보기를 선택하고 "IronOCR.dll"을 선택합니다.

라이선스 가격은 749달러 부터 시작합니다.

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일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.