Como ler capturas de tela com o IronOCR em C

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

O método ReadScreenshot do IronOCR extrai texto de capturas de tela de forma eficiente, lidando com vários desafios de dimensões e ruído enquanto suporta formatos de arquivo comuns, incluindo PNG, JPG e BMP.

As capturas de tela oferecem uma maneira rápida de compartilhar informações e registrar dados importantes. No entanto, extrair texto de capturas de tela tem se mostrado difícil devido às dimensões variáveis ​​e ao ruído. Isso torna as capturas de tela um meio desafiador para o OCR.

O IronOCR resolve este problema fornecendo métodos especializados como ReadScreenshot. Este método é otimizado para leitura de capturas de tela e extração de informações a partir delas, aceitando formatos de arquivo comuns. Diferentemente dos métodos OCR padrão , este método aplica otimizações de pré-processamento específicas, adaptadas ao conteúdo de capturas de tela, incluindo redução automática de ruído e aprimoramento de contraste.

Para usar essa função, instale o pacote IronOcr.Extension.AdvancedScan . Esta extensão oferece recursos avançados de visão computacional que aprimoram a precisão do reconhecimento de texto em capturas de tela, especialmente para elementos da interface do usuário, fontes do sistema e texto com suavização de serrilhado em aplicativos modernos.

Início rápido: Ler texto de uma captura de tela

Comece em segundos usando ReadScreenshot do IronOCR—carregue sua captura de tela em um OcrInput, chame ReadScreenShot e acesse imediatamente o texto extraído, a pontuação de confiança e as regiões de texto através do OcrPhotoResult. É a maneira mais rápida de transformar imagens em texto utilizável com o mínimo de configuração.

  1. Instale IronOCR com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronOcr
  2. Copie e execute este trecho de código.

    OcrPhotoResult result = new IronTesseract().ReadScreenShot(new OcrInput().LoadImage("screenshot.png"));
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronOCR em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Este guia demonstra como usar o IronOCR para reconhecimento de texto em capturas de tela, apresentando exemplos e as propriedades do objeto de resultado. Vamos explorar cenários avançados, como o processamento de regiões específicas , o tratamento de conteúdo multilíngue e a otimização do desempenho para processamento em lote.

Como extrair texto de capturas de tela usando o ReadScreenshot?

Para ler uma captura de tela no IronOCR, utilize o método ReadScreenshot, que aceita um OcrInput como parâmetro. Este método é mais otimizado para capturas de tela do que o equivalente padrão Read da biblioteca. A otimização inclui a detecção automática de elementos da interface do usuário, melhor tratamento de fontes com suavização de serrilhado e reconhecimento aprimorado de fontes do sistema em diferentes sistemas operacionais.

Observe

  • O método funciona atualmente para idiomas como inglês, chinês, japonês, coreano e alfabetos baseados no alfabeto latino.
  • O uso da verificação avançada no .NET Framework exige que o projeto seja executado em arquitetura x64.

)}]

Que tipos de capturas de tela funcionam melhor?

Abaixo está nossa entrada para o exemplo de código; Demonstramos a versatilidade deste método misturando diferentes fontes e tamanhos de texto. O método ReadScreenshot se destaca em reconhecer:

  • Fontes da interface do usuário do sistema (Windows, macOS, Linux)
  • Texto com suavização de serrilhado (anti-aliasing) de aplicativos modernos
  • Tamanhos e estilos de fonte variados
  • Texto sobreposto em fundos complexos
  • Saída do console e capturas de tela do terminal
  • Conteúdo do navegador com diversas fontes da web

Para obter os melhores resultados, capture as imagens na resolução nativa, sem compressão. O método processa vários formatos de imagem , mas o formato PNG preserva melhor a nitidez do texto devido à sua compressão sem perdas.

Página inicial da biblioteca OCR C# do IronOCR mostrando compatibilidade de plataforma e principais características para reconhecimento de texto

Como faço para implementar o método 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

Para cenários complexos, aprimore o processo de leitura de capturas de tela com pré-processamento adicional:

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

Quais propriedades o OcrPhotoResult retorna?

Depurador do Visual Studio mostrando detalhes da biblioteca IronOCR com versão 2024.9 e pontuação de precisão 0.937

A saída do console mostra a extração de todas as instâncias de texto da captura de tela. Vamos explorar as propriedades de OcrPhotoResult e como aproveitá-las efetivamente:

  • Text: O texto extraído de Entrada OCR. Esta propriedade contém todo o texto reconhecido como uma única string, preservando o layout original com quebras de linha e espaçamento.
  • Confidence: Uma propriedade double indicando a confiança de precisão estatística em uma escala de 0 a 1, onde 1 representa a maior confiança. Utilize isso para implementar o controle de qualidade em sua aplicação.
  • TextRegion: Um array de objetos TextRegion que contém propriedades que retornam áreas onde o texto é encontrado na captura de tela. Por padrão, todo TextRegion é uma classe derivada Rectangle dos modelos IronOCR. Inclui as coordenadas x e y, além da altura e largura do retângulo.

Trabalhar com regiões de texto permite que você:

  • Extrair texto de áreas específicas da captura de tela
  • Identificar a localização dos elementos da interface do usuário
  • Crie sobreposições clicáveis ​​com base nas posições do texto.
  • Implementar processamento OCR específico para cada região

Aqui está um exemplo de processamento de regiões de texto individuais:

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

Técnicas avançadas de processamento de capturas de tela

Lidando com capturas de tela em vários idiomas

Ao trabalhar com capturas de tela que contêm vários idiomas, o IronOCR oferece suporte multilíngue robusto. Isso é útil para aplicações internacionais ou capturas de tela de interfaces de usuário multilíngues:

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

Otimização de desempenho para processamento em lote

Ao processar várias capturas de tela, implemente estas estratégias de otimização:

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

Melhores práticas para OCR de capturas de tela

  1. Qualidade de captura : Capture imagens na resolução nativa, sem redimensionamento.
  2. Seleção de formato : Use o formato PNG para preservar a qualidade sem perdas.
  3. Pré-processamento : Aplicar filtros apropriados com base no conteúdo da captura de tela.
  4. Limiares de Confiança : Implemente a validação baseada em confiança para aplicações críticas.
  5. Acompanhamento do progresso : Para operações de longa duração, implemente o acompanhamento do progresso.

Casos de uso comuns

O método ReadScreenshot é ideal para:

  • Testes e verificação automatizados da interface do usuário
  • Sistemas de gerenciamento de ativos digitais
  • Ferramentas de suporte ao cliente para captura de mensagens de erro
  • Automação de documentação
  • Ferramentas de acessibilidade para leitores de tela
  • Aplicativos de jogos e streaming

Integração com as funcionalidades do IronOCR

A funcionalidade de leitura de capturas de tela integra-se perfeitamente com outros recursos do IronOCR. Explore a manipulação abrangente dos resultados de OCR para exportar dados em vários formatos ou mergulhe na configuração avançada do Tesseract para ajustar a precisão do reconhecimento.

Resumo

O método ReadScreenshot do IronOCR fornece uma solução poderosa e otimizada para extrair texto de capturas de tela. Com pré-processamento especializado, alta precisão e dados de resultados abrangentes, permite que os desenvolvedores criem aplicativos robustos que processam conteúdo de capturas de tela de forma confiável. Seja construindo ferramentas de automação, soluções de acessibilidade ou sistemas de extração de dados, o método ReadScreenshot oferece o desempenho e a precisão necessários para ambientes de produção.

Perguntas frequentes

O que torna a extração de OCR de capturas de tela um desafio?

Capturas de tela apresentam desafios únicos para OCR devido às dimensões variáveis e aos níveis de ruído. O IronOCR resolve esses problemas com seu método especializado ReadScreenshot, que aplica redução automática de ruído e aprimoramento de contraste otimizados especificamente para conteúdo de capturas de tela.

Quais formatos de arquivo são suportados para OCR de capturas de tela?

O método ReadScreenshot do IronOCR suporta formatos de arquivo de imagem comuns, incluindo PNG, JPG e BMP, tornando-o compatível com a maioria das ferramentas e aplicativos de captura de tela.

Como o método ReadScreenshot difere dos métodos OCR padrão?

Diferentemente dos métodos OCR padrão do IronOCR, o método ReadScreenshot aplica otimizações de pré-processamento específicas, adaptadas ao conteúdo da captura de tela, incluindo redução automática de ruído, aprimoramento de contraste e melhor tratamento de fontes com suavização de serrilhado e elementos da interface do usuário.

Que pacote adicional é necessário para a funcionalidade de OCR de captura de tela?

Para usar a função ReadScreenshot no IronOCR, você precisa instalar o pacote IronOcr.Extension.AdvancedScan, que fornece recursos avançados de visão computacional que melhoram a precisão do reconhecimento de texto em capturas de tela.

Com que rapidez posso começar a extrair texto de capturas de tela?

Com o IronOCR, você pode extrair texto de capturas de tela em segundos, carregando a captura de tela em um OcrInput, chamando ReadScreenShot e acessando imediatamente o texto extraído, a pontuação de confiança e as regiões de texto por meio do OcrPhotoResult.

Para que tipos de conteúdo o OCR de captura de tela otimiza?

A otimização de capturas de tela do IronOCR inclui detecção automática de elementos da interface do usuário, reconhecimento aprimorado de fontes do sistema em diferentes sistemas operacionais e melhor tratamento de texto com suavização de serrilhado, comum em aplicativos modernos.

Posso processar regiões específicas de uma captura de tela?

Sim, o IronOCR suporta o processamento de regiões específicas de capturas de tela, permitindo que você selecione áreas de interesse específicas em vez de processar a imagem inteira, o que pode melhorar o desempenho e a precisão.

O OCR de capturas de tela oferece suporte a conteúdo multilíngue?

O método ReadScreenshot do IronOCR consegue lidar com conteúdo multilíngue em capturas de tela, tornando-o adequado para aplicações internacionais e interfaces de usuário multilíngues.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 5,525,971 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronOcr
executar um exemplo Veja sua imagem se transformar em texto pesquisável.