C#에서 IronOCR을 사용하여 스크린샷을 읽는 방법

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

IronOCR의 ReadScreenshot 메소드는 스크린샷에서 텍스트를 효율적으로 추출하며, 다양한 차원과 잡음 문제를 처리하고 PNG, JPG, BMP를 포함한 일반 파일 형식을 지원합니다.

스크린샷은 정보를 빠르게 공유하고 중요한 데이터를 캡처하는 데 유용한 방법입니다. 하지만 스크린샷에서 텍스트를 추출하는 것은 크기가 다양하고 노이즈가 많기 때문에 어려운 것으로 나타났습니다. 따라서 스크린샷은 OCR에 있어 까다로운 매체입니다.

IronOCR는 ReadScreenshot와 같은 특수 메소드를 제공하여 이 문제를 해결합니다. 이 방법은 일반적인 파일 형식을 지원하면서 스크린샷을 읽고 정보를 추출하는 데 최적화되어 있습니다. 일반적인 OCR 방식 과 달리, 이 방식은 자동 노이즈 감소 및 대비 향상을 포함하여 스크린샷 콘텐츠에 맞춘 특정 전처리 최적화를 적용합니다.

이 기능을 사용하려면 IronOcr.Extension.AdvancedScan 패키지를 설치하십시오. 이 확장 프로그램은 고급 컴퓨터 비전 기능을 제공하여 특히 최신 애플리케이션의 UI 요소, 시스템 글꼴 및 앤티앨리어싱 처리된 텍스트에 대한 스크린샷 텍스트 인식 정확도를 향상시킵니다.

빠른 시작: 스크린샷에서 텍스트 읽기

IronOCR의 ReadScreenshot을 사용하여 몇 초 만에 시작하세요—스크린샷을 OcrInput에 로드하고, ReadScreenShot을 호출하여 추출된 텍스트, 신뢰도 점수 및 텍스트 영역을 OcrPhotoResult 통해 바로 액세스할 수 있습니다. 최소한의 설정으로 이미지를 사용 가능한 텍스트로 변환하는 가장 빠른 방법입니다.

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

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

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

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

    arrow pointer

이 가이드는 IronOCR을 사용하여 스크린샷 텍스트를 인식하는 방법을 예시와 결과 객체의 속성을 통해 설명합니다. 특정 지역 처리 , 다국어 콘텐츠 처리, 일괄 처리 성능 최적화와 같은 고급 시나리오를 살펴보겠습니다.

ReadScreenshot을 사용하여 스크린샷에서 텍스트를 추출하는 방법은 무엇인가요?

IronOCR에서 스크린샷을 읽으려면 ReadScreenshot 메소드를 사용하세요. 이 메소드는 OcrInput를 매개변수로 받습니다. 이 메소드는 라이브러리의 표준 Read 대응 방법보다 스크린샷에 더 최적화되어 있습니다. 최적화에는 UI 요소의 자동 감지, 앤티앨리어싱 글꼴 처리 개선, 다양한 운영 체제에서 시스템 글꼴 인식 개선 등이 포함됩니다.

참고해 주세요

  • 현재 이 방법은 영어, 중국어, 일본어, 한국어 및 라틴 알파벳 기반 언어를 포함한 여러 언어에서 작동합니다.
  • .NET Framework에서 고급 검사를 사용하려면 프로젝트가 x64 아키텍처에서 실행되어야 합니다.

)}]

어떤 유형의 스크린샷이 가장 효과적일까요?

아래는 코드 예제에 대한 입력값입니다. 본 연구에서는 다양한 글꼴과 크기를 혼합하여 이 방법의 다재다능함을 보여줍니다. ReadScreenshot 메소드는 다음을 인식하는 데 탁월합니다:

  • 시스템 UI 글꼴(Windows, macOS, Linux)
  • 최신 애플리케이션에서 제공하는 앤티앨리어싱 처리된 텍스트
  • 다양한 글꼴 크기와 스타일
  • 복잡한 배경 위에 텍스트가 겹쳐짐
  • 콘솔 출력 및 터미널 스크린샷
  • 다양한 웹 글꼴이 포함된 브라우저 콘텐츠

최적의 결과를 얻으려면 압축하지 않고 원본 해상도로 스크린샷을 찍으세요. 이 방법은 다양한 이미지 형식을 처리하지만, PNG 형식은 무손실 압축 덕분에 텍스트 선명도를 가장 잘 유지합니다.

IronOCR C# OCR 라이브러리 홈페이지에는 플랫폼 호환성과 텍스트 인식의 주요 기능이 표시됩니다

ReadScreenshot 메서드를 어떻게 구현하나요?

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

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

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

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

// Output screenshot 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

복잡한 시나리오의 경우, 추가적인 전처리 과정을 통해 스크린샷 읽기 프로세스를 개선하십시오.

using IronOcr;
using System;

// Configure OCR engine with specific settings for screenshots
var ocr = new IronTesseract()
{
    // Set language for better accuracy with non-English content
    Language = OcrLanguage.English,
    // Configure for screen-resolution images
    Configuration = new TesseractConfiguration()
    {
        PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
        // Enable whitelist for specific characters if needed
        WhiteListCharacters = null
    }
};

using var inputScreenshot = new OcrInput();
// Load screenshot with specific DPI setting for consistency
inputScreenshot.LoadImage("screenshotOCR.png", 96); // Standard screen DPI

// Apply preprocessing for better accuracy
inputScreenshot.DeNoise(); // Remove screenshot artifacts
inputScreenshot.Sharpen(); // Enhance text edges

// Perform OCR with error handling
try
{
    OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot);

    // Process results with confidence threshold
    if (result.Confidence > 0.8)
    {
        Console.WriteLine($"High confidence text extraction: {result.Text}");
    }
    else
    {
        Console.WriteLine("Low confidence - consider image preprocessing");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"OCR Error: {ex.Message}");
}
using IronOcr;
using System;

// Configure OCR engine with specific settings for screenshots
var ocr = new IronTesseract()
{
    // Set language for better accuracy with non-English content
    Language = OcrLanguage.English,
    // Configure for screen-resolution images
    Configuration = new TesseractConfiguration()
    {
        PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
        // Enable whitelist for specific characters if needed
        WhiteListCharacters = null
    }
};

using var inputScreenshot = new OcrInput();
// Load screenshot with specific DPI setting for consistency
inputScreenshot.LoadImage("screenshotOCR.png", 96); // Standard screen DPI

// Apply preprocessing for better accuracy
inputScreenshot.DeNoise(); // Remove screenshot artifacts
inputScreenshot.Sharpen(); // Enhance text edges

// Perform OCR with error handling
try
{
    OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot);

    // Process results with confidence threshold
    if (result.Confidence > 0.8)
    {
        Console.WriteLine($"High confidence text extraction: {result.Text}");
    }
    else
    {
        Console.WriteLine("Low confidence - consider image preprocessing");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"OCR Error: {ex.Message}");
}
$vbLabelText   $csharpLabel

OcrPhotoResult는 어떤 속성을 반환합니까?

Visual Studio 디버거에는 IronOCR 라이브러리 세부사항이 버전 2024.9 및 정확도 점수 0.937로 표시됩니다

콘솔 출력에는 스크린샷에서 추출된 모든 텍스트가 표시됩니다. OcrPhotoResult의 속성을 탐색하고 이를 효과적으로 활용하는 방법을 살펴보겠습니다:

  • Text: OCR 입력에서 추출된 텍스트입니다. 이 속성은 인식된 모든 텍스트를 단일 문자열로 포함하며, 줄 바꿈과 간격을 포함한 원래 레이아웃을 유지합니다.
  • Confidence: 0에서 1까지의 척도로 통계적 정확성 신뢰도를 나타내는 더블 속성으로, 1은 가장 높은 신뢰도를 나타냅니다. 이 기능을 사용하여 애플리케이션의 품질 관리를 구현하세요.
  • TextRegion: 스크린샷에서 텍스트가 발견된 영역을 반환하는 속성을 가진 TextRegion 객체 배열입니다. 기본적으로 모든 TextRegion는 IronOCR 모델에서 파생된 Rectangle 클래스입니다. 여기에는 직사각형의 x, y 좌표와 높이 및 너비가 포함됩니다.

TextRegions를 사용하면 다음과 같은 이점을 누릴 수 있습니다.

  • 스크린샷의 특정 영역에서 텍스트를 추출합니다.
  • UI 요소 위치를 식별합니다
  • 텍스트 위치를 기반으로 클릭 가능한 오버레이를 생성합니다.
  • 지역별 OCR 처리 구현

다음은 개별 텍스트 영역을 처리하는 예입니다.

using IronOcr;
using System;
using System.Linq;

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

OcrPhotoResult result = ocr.ReadScreenShot(input);

// Process each text region individually
foreach (var region in result.TextRegions)
{
    Console.WriteLine($"Text: {region.Text}");
    Console.WriteLine($"Location: X={region.Region.X}, Y={region.Region.Y}");
    Console.WriteLine($"Size: {region.Region.Width}x{region.Region.Height}");
    Console.WriteLine($"Confidence: {region.Confidence:P2}");
    Console.WriteLine("---");
}

// Find specific UI elements by text content
var buttonRegion = result.TextRegions
    .FirstOrDefault(r => r.Text.Contains("Submit", StringComparison.OrdinalIgnoreCase));

if (buttonRegion != null)
{
    Console.WriteLine($"Found button at: {buttonRegion.Region.X}, {buttonRegion.Region.Y}");
}
using IronOcr;
using System;
using System.Linq;

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

OcrPhotoResult result = ocr.ReadScreenShot(input);

// Process each text region individually
foreach (var region in result.TextRegions)
{
    Console.WriteLine($"Text: {region.Text}");
    Console.WriteLine($"Location: X={region.Region.X}, Y={region.Region.Y}");
    Console.WriteLine($"Size: {region.Region.Width}x{region.Region.Height}");
    Console.WriteLine($"Confidence: {region.Confidence:P2}");
    Console.WriteLine("---");
}

// Find specific UI elements by text content
var buttonRegion = result.TextRegions
    .FirstOrDefault(r => r.Text.Contains("Submit", StringComparison.OrdinalIgnoreCase));

if (buttonRegion != null)
{
    Console.WriteLine($"Found button at: {buttonRegion.Region.X}, {buttonRegion.Region.Y}");
}
$vbLabelText   $csharpLabel

고급 스크린샷 처리 기술

다국어 스크린샷 처리

IronOCR은 여러 언어가 포함된 스크린샷을 처리할 때 강력한 다국어 지원 기능을 제공합니다. 이는 국제적인 애플리케이션이나 다국어 사용자 인터페이스의 스크린샷에 유용합니다.

using IronOcr;

// Configure for multiple languages
var ocr = new IronTesseract();
ocr.AddSecondaryLanguage(OcrLanguage.ChineseSimplified);
ocr.AddSecondaryLanguage(OcrLanguage.Japanese);

using var input = new OcrInput();
input.LoadImage("multilingual-screenshot.png");

// Process with language detection
OcrPhotoResult result = ocr.ReadScreenShot(input);
Console.WriteLine($"Extracted multilingual text: {result.Text}");
using IronOcr;

// Configure for multiple languages
var ocr = new IronTesseract();
ocr.AddSecondaryLanguage(OcrLanguage.ChineseSimplified);
ocr.AddSecondaryLanguage(OcrLanguage.Japanese);

using var input = new OcrInput();
input.LoadImage("multilingual-screenshot.png");

// Process with language detection
OcrPhotoResult result = ocr.ReadScreenShot(input);
Console.WriteLine($"Extracted multilingual text: {result.Text}");
$vbLabelText   $csharpLabel

배치 처리 성능 최적화

여러 스크린샷을 처리할 때 다음과 같은 최적화 전략을 적용하세요.

using IronOcr;
using System.Collections.Generic;
using System.Threading.Tasks;

public async Task ProcessScreenshotBatchAsync(List<string> screenshotPaths)
{
    var ocr = new IronTesseract();

    // Process screenshots in parallel for better performance
    var tasks = screenshotPaths.Select(async path =>
    {
        using var input = new OcrInput();
        input.LoadImage(path);

        // Apply consistent preprocessing
        input.DeNoise();

        var result = await Task.Run(() => ocr.ReadScreenShot(input));
        return new { Path = path, Result = result };
    });

    var results = await Task.WhenAll(tasks);

    // Process results
    foreach (var item in results)
    {
        Console.WriteLine($"File: {item.Path}");
        Console.WriteLine($"Text: {item.Result.Text}");
        Console.WriteLine($"Confidence: {item.Result.Confidence:P2}");
    }
}
using IronOcr;
using System.Collections.Generic;
using System.Threading.Tasks;

public async Task ProcessScreenshotBatchAsync(List<string> screenshotPaths)
{
    var ocr = new IronTesseract();

    // Process screenshots in parallel for better performance
    var tasks = screenshotPaths.Select(async path =>
    {
        using var input = new OcrInput();
        input.LoadImage(path);

        // Apply consistent preprocessing
        input.DeNoise();

        var result = await Task.Run(() => ocr.ReadScreenShot(input));
        return new { Path = path, Result = result };
    });

    var results = await Task.WhenAll(tasks);

    // Process results
    foreach (var item in results)
    {
        Console.WriteLine($"File: {item.Path}");
        Console.WriteLine($"Text: {item.Result.Text}");
        Console.WriteLine($"Confidence: {item.Result.Confidence:P2}");
    }
}
$vbLabelText   $csharpLabel

스크린샷 OCR을 위한 모범 사례

  1. 캡처 품질 : 확대/축소 없이 원래 해상도로 스크린샷을 캡처합니다.
  2. 형식 선택 : 화질 손실 없이 보존하려면 PNG 형식을 사용하십시오.
  3. 전처리 : 스크린샷 내용에 따라 적절한 필터를 적용합니다.
  4. 신뢰도 임계값 : 중요 애플리케이션에 대해 신뢰도 기반 검증을 구현합니다.
  5. 진행 상황 추적 : 장기 작업의 경우 진행 상황 추적 시스템을 도입하십시오.

일반적인 사용 사례

ReadScreenshot 메소드는 다음에 이상적입니다:

  • 자동화된 UI 테스트 및 검증
  • 디지털 자산 관리 시스템
  • 오류 메시지 캡처를 위한 고객 지원 도구
  • 문서 자동화
  • 화면 낭독기용 접근성 도구
  • 게임 및 스트리밍 애플리케이션

IronOCR 기능과의 통합

스크린샷 읽기 기능은 IronOCR의 다른 기능들과 완벽하게 통합됩니다. 다양한 형식으로 데이터를 내보낼 수 있는 포괄적인 OCR 결과 조작 기능을 살펴보거나, 인식 정확도를 미세 조정하기 위한 고급 Tesseract 구성 기능을 활용해 보세요.

요약

IronOCR의 ReadScreenshot 메소드는 스크린샷에서 텍스트를 추출하는 강력하고 최적화된 솔루션을 제공합니다. 특수 전처리, 높은 정확도 및 포괄적인 결과 데이터를 통해 개발자는 스크린샷 콘텐츠를 안정적으로 처리하는 강력한 애플리케이션을 구축할 수 있습니다. 자동화 도구, 접근성 솔루션 혹은 데이터 추출 시스템을 구축하든지 간에, ReadScreenshot 메소드는 프로덕션 환경에 필요한 성능과 정확성을 제공합니다.

자주 묻는 질문

스크린샷에서 OCR을 추출하는 것이 어려운 이유는 무엇일까요?

스크린샷은 크기와 노이즈 수준이 다양하여 OCR 처리에서 고유한 어려움을 야기합니다. IronOCR은 스크린샷 콘텐츠에 최적화된 자동 노이즈 감소 및 대비 향상 기능을 적용하는 특수 ReadScreenshot 방식을 통해 이러한 문제를 해결합니다.

스크린샷 OCR에서 지원하는 파일 형식은 무엇인가요?

IronOCR의 ReadScreenshot 메서드는 PNG, JPG, BMP를 포함한 일반적인 이미지 파일 형식을 지원하므로 대부분의 스크린샷 캡처 도구 및 애플리케이션과 호환됩니다.

ReadScreenshot 방식은 표준 OCR 방식과 어떻게 다른가요?

IronOCR의 표준 OCR 방식과 달리 ReadScreenshot 방식은 스크린샷 콘텐츠에 최적화된 전처리 기능을 적용합니다. 여기에는 자동 노이즈 감소, 대비 향상, 앤티앨리어싱 처리된 글꼴 및 UI 요소의 향상된 처리 등이 포함됩니다.

스크린샷 OCR 기능을 사용하려면 어떤 추가 패키지가 필요합니까?

IronOCR에서 ReadScreenshot 기능을 사용하려면 스크린샷 텍스트 인식 정확도를 향상시키는 고급 컴퓨터 비전 기능을 제공하는 IronOcr.Extension.AdvancedScan 패키지를 설치해야 합니다.

스크린샷에서 텍스트를 추출하는 작업을 얼마나 빨리 시작할 수 있나요?

IronOCR을 사용하면 스크린샷을 OcrInput에 로드하고 ReadScreenShot을 호출하여 몇 초 만에 스크린샷에서 텍스트를 추출할 수 있으며, 추출된 텍스트, 신뢰도 점수 및 텍스트 영역은 OcrPhotoResult를 통해 즉시 확인할 수 있습니다.

스크린샷 OCR은 어떤 유형의 콘텐츠에 최적화되어 있나요?

IronOCR의 스크린샷 최적화 기능에는 UI 요소 자동 감지, 다양한 운영 체제에서 시스템 글꼴 인식 개선, 최신 애플리케이션에서 흔히 볼 수 있는 앤티앨리어싱 처리된 텍스트 처리 개선 등이 포함됩니다.

스크린샷의 특정 영역만 처리할 수 있나요?

네, IronOCR은 스크린샷의 특정 영역 처리를 지원하므로 전체 이미지를 처리하는 대신 특정 관심 영역을 대상으로 처리할 수 있어 성능과 정확도를 향상시킬 수 있습니다.

스크린샷 OCR에서 다국어 콘텐츠를 지원합니까?

IronOCR의 ReadScreenshot 메서드는 스크린샷의 다국어 콘텐츠를 처리할 수 있으므로 국제적인 애플리케이션 및 다국어 사용자 인터페이스에 적합합니다.

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

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

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

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

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

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