Como extrair resultados de leitura em C# com IronOCR

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

O método Read do IronOCR retorna um objeto OcrResult contendo texto extraído mais metadados detalhados, incluindo coordenadas precisas, dimensões, direção do texto e estrutura hierárquica (parágrafos, linhas, palavras, caracteres) para cada elemento detectado.

O resultado do OCR contém informações abrangentes sobre os parágrafos, linhas, palavras e caracteres individuais detectados.

Para cada elemento, ele fornece o conteúdo do texto, coordenadas precisas X e Y, dimensões (largura e altura), direção do texto (Esquerda para Direita ou de Cima para Baixo) e localização em um objeto CropRectangle.

Início Rápido: Recuperar Texto da Primeira Palavra Detectada

Use o método Read do IronTesseract para OCR uma imagem e extrair o texto da primeira palavra usando a coleção Palavras.

  1. Instale IronOCR com o Gerenciador de Pacotes NuGet

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

    string wordText = new IronTesseract().Read("file.jpg").Palavras[0].Text;
  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

Que dados posso extrair dos resultados do OCR?

O valor resultante contém não apenas o texto extraído, mas também informações sobre páginas, parágrafos, linhas, palavras, caracteres e códigos de barras descobertos em documentos PDF e de imagem pelo IronOCR. Você pode acessar essa informação do objeto OcrResult retornado usando o método Read.

O sistema de resultados abrangente do IronOCR baseia-se no poderoso mecanismo Tesseract 5 , fornecendo aos desenvolvedores recursos de extração de dados estruturados que vão além do simples reconhecimento de texto. Seja processando documentos escaneados, fotos ou capturas de tela, a classe OcrResult oferece controle detalhado sobre os dados extraídos.

:path=/static-assets/ocr/content-code-examples/how-to/read-results-output-information.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;

// Output information to console
Console.WriteLine($"Text: {paragraphs[0].Text}");
Console.WriteLine($"X: {paragraphs[0].X}");
Console.WriteLine($"Y: {paragraphs[0].Y}");
Console.WriteLine($"Width: {paragraphs[0].Width}");
Console.WriteLine($"Height: {paragraphs[0].Height}");
Console.WriteLine($"Text direction: {paragraphs[0].TextDirection}");
$vbLabelText   $csharpLabel
O depurador do Visual Studio exibe os resultados da extração de OCR com coordenadas e texto de um documento comercial japonês.

Como posso acessar o conteúdo de texto dos resultados do OCR?

O objeto OcrResult apresenta o texto extraído de uma maneira simples e intuitiva, permitindo que os desenvolvedores o utilizem diretamente ou o integrem a outros componentes de aplicações. A estrutura hierárquica espelha a organização natural do texto em documentos, facilitando o trabalho com conteúdo em diferentes níveis de granularidade.

Para aplicações que exigem suporte a vários idiomas , o IronOCR lida perfeitamente com documentos multilíngues, mantendo o mesmo formato de resultado estruturado em todos os 125 idiomas suportados .

O exemplo de código a seguir imprime texto em um loop para verificar os resultados.

:path=/static-assets/ocr/content-code-examples/how-to/read-results-output-text.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sampleText.png");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;

// Loop through each paragraph in the array
Console.WriteLine("--- All Detected Paragraphs ---");
foreach (Paragraph paragraph in paragraphs)
{
    // Print the text of the current paragraph
    Console.WriteLine(paragraph.Text);

    // Add a blank line for better separation (optional)
    Console.WriteLine();
}
$vbLabelText   $csharpLabel

Saída

Terminal exibindo resultados da detecção de parágrafos por OCR com texto extraído sobre Masayoshi Son e Yasumitsu Shigeta.

A saída do console mostra o IronOCR extraindo o texto do parágrafo linha por linha com precisão. O mecanismo detecta automaticamente os limites dos parágrafos, tornando-o ideal para processar documentos complexos com vários blocos de texto.

Como posso obter as coordenadas de localização do texto detectado?

Além do texto extraído, o OcrResult fornece dados detalhados de localização. Essa informação espacial é crucial para aplicações que precisam manter a fidelidade do layout ou realizar extração de texto direcionada de regiões específicas do documento. O sistema de coordenadas utiliza medidas de pixel padrão a partir do canto superior esquerdo da página.

Para maior precisão em operações baseadas em coordenadas, considere usar o direcionamento regional por OCR para focar em áreas específicas ou aproveite os recursos de Visão Computacional para identificar automaticamente regiões de texto.

O código a seguir demonstra a iteração sobre cada parágrafo e a impressão de suas coordenadas (X e Y) no console.

:path=/static-assets/ocr/content-code-examples/how-to/read-results-output-text.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sampleText.png");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;

// Loop through each paragraph in the array
Console.WriteLine("--- All Detected Paragraphs ---");
foreach (Paragraph paragraph in paragraphs)
{
    // Print the text of the current paragraph
    Console.WriteLine(paragraph.Text);

    // Add a blank line for better separation (optional)
    Console.WriteLine();
}
$vbLabelText   $csharpLabel

Saída

Saída do terminal mostrando as coordenadas do parágrafo detectadas pelo OCR com valores X,Y: (29,30), (28,74) e (27,362)

O resultado mostra três conjuntos de coordenadas correspondentes a três parágrafos. Essas coordenadas podem ser usadas para desenhar caixas delimitadoras, extrair regiões específicas ou manter relações espaciais entre elementos de texto.

Que outros atributos estão disponíveis nos resultados do OCR?

Além do texto e das coordenadas do texto, o IronOCR fornece informações adicionais. Para cada elemento de texto (parágrafos, linhas, palavras e caracteres individuais), as seguintes informações estão disponíveis:

  • Texto : O texto propriamente dito, em formato de cadeia de caracteres.
  • X : A posição a partir da borda esquerda da página, em pixels.
  • Y : A posição a partir da borda superior da página, em pixels.
  • Largura : A largura em pixels.
  • Altura : A altura em pixels.
  • Direção do texto : A direção em que o texto foi lido (da esquerda para a direita ou de cima para baixo).
  • Localização : Um retângulo que mostra onde este texto está localizado na página, em pixels.

Esses atributos são particularmente úteis na implementação de:

  • Sistemas de realce e anotação de texto
  • Detecção automática de campos de formulário
  • Preservação do layout na conversão de documentos
  • Análise espacial de texto para extração de dados

Para depuração e visualização, utilize o recurso de realce de texto para verificar visualmente a precisão da região detectada.

Como se comparam parágrafos, linhas, palavras e caracteres?

A estrutura hierárquica de texto do IronOCR permite que os desenvolvedores trabalhem no nível de detalhe apropriado para seu caso de uso específico. Compreender as diferenças entre esses elementos ajuda a escolher a granularidade correta para sua aplicação.

A seguir, encontra-se a comparação dos parágrafos, linhas, palavras e caracteres detectados.

Perfis biográficos em destaque dos empreendedores japoneses de tecnologia Masayoshi Son e Yasumitsu Shigeta
Documento com destaque em vermelho mostrando os perfis dos executivos japoneses de tecnologia Masayoshi Son e Yasumitsu Shigeta.
Recurso de destaque de texto que exibe caixas vermelhas sobrepostas às palavras selecionadas em um parágrafo sobre investimentos em tecnologia.
Detecção de texto em nível de caractere, mostrando os limites de caracteres individuais nos resultados de OCR.

Cada nível de granularidade serve a propósitos diferentes:

  • Parágrafos : Ideal para análise da estrutura de documentos e extração de texto em massa.
  • Linhas : Úteis para manter a ordem de leitura e processar dados tabulares.
  • Palavras : Ideal para funcionalidades de busca e análise de texto
  • Caracteres : Perfeitos para verificação ortográfica e edição de texto precisa.

O IronOCR consegue ler códigos de barras e códigos QR?

Sim, o IronOCR consegue ler códigos de barras e códigos QR. Embora o recurso possa não ser tão robusto quanto o IronBarcode, o IronOCR oferece suporte a tipos comuns de código de barras. Para habilitar a detecção de código de barras, defina a propriedade Configuration.ReadBarCodes como true. Essa funcionalidade integrada torna o IronOCR uma excelente opção para processar documentos que contenham texto e códigos de barras, como faturas, etiquetas de envio ou catálogos de produtos.

Além disso, informações valiosas podem ser extraídas de códigos de barras detectados, incluindo formato, valor, coordenadas (x, y), altura, largura e localização como objeto IronSoftware.Drawing.Rectangle. A classe Rectangle do IronDrawing permite um posicionamento preciso no documento.

Para cenários de leitura de código de barras mais avançados, consulte os exemplos abrangentes de leitura de código de barras em nossa documentação.

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

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Enable barcodes detection
ocrTesseract.Configuration.ReadBarCodes = true;

// Add image
using OcrInput ocrInput = new OcrInput();
ocrInput.LoadPdf("sample.pdf");

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(ocrInput);

// Output information to console
foreach(var barcode in ocrResult.Barcodes)
{
    Console.WriteLine("Format = " + barcode.Format);
    Console.WriteLine("Value = " + barcode.Value);
    Console.WriteLine("X = " + barcode.X);
    Console.WriteLine("Y = " + barcode.Y);
}
Console.WriteLine(ocrResult.Text);
$vbLabelText   $csharpLabel

Qual é a aparência do resultado da detecção de código de barras?

O recurso de detecção de código de barras do IronOCR integra-se perfeitamente à extração de texto, fornecendo resultados unificados que incluem tanto o conteúdo textual quanto os dados do código de barras. Essa capacidade dupla é valiosa para fluxos de trabalho automatizados de processamento de documentos, onde ambos os tipos de informação precisam ser extraídos e correlacionados.

Console de depuração exibindo os resultados da detecção de códigos QR e EAN8, incluindo formatos, valores e coordenadas.

O resultado demonstra a capacidade do IronOCR de detectar vários tipos de código de barras simultaneamente, fornecendo identificação de formato (como QRCode ou EAN8), valores decodificados e informações de coordenadas precisas para cada código detectado. Esses dados abrangentes permitem que os desenvolvedores criem aplicativos sofisticados de processamento de documentos que lidam com tipos de conteúdo mistos de forma eficiente.

Perguntas frequentes

Que informações o objeto OcrResult contém?

O objeto OcrResult do IronOCR contém o texto extraído, além de metadados detalhados, incluindo coordenadas X/Y precisas, dimensões (largura e altura), direção do texto (da esquerda para a direita ou de cima para baixo) e estrutura hierárquica organizada em parágrafos, linhas, palavras e caracteres individuais para cada elemento detectado.

Como posso extrair rapidamente a primeira palavra de um resultado de OCR?

Você pode extrair o texto da primeira palavra usando o método Read do IronOCR e acessando a coleção Words: `string wordText = new IronTesseract().Read("file.jpg").Words[0].Text;`. Isso fornece acesso instantâneo a elementos de palavras individuais dos resultados do OCR.

Que tipos de dados de coordenadas estão disponíveis nos resultados de OCR?

O IronOCR fornece coordenadas X e Y precisas para cada elemento detectado (parágrafos, linhas, palavras e caracteres), juntamente com as dimensões de largura e altura. Esses dados de coordenadas são acessíveis por meio do objeto CropRectangle, permitindo o rastreamento preciso da localização dos elementos de texto.

Posso extrair metadados além do conteúdo textual?

Sim, o IronOCR extrai metadados abrangentes, incluindo páginas, parágrafos, linhas, palavras, caracteres e até mesmo códigos de barras encontrados em documentos PDF e imagens. O objeto OcrResult fornece acesso à direção do texto, à estrutura hierárquica e às informações espaciais de cada elemento.

Que tipos de documentos podem ser processados para resultados de OCR?

O IronOCR pode processar vários tipos de documentos, incluindo documentos digitalizados, fotos, capturas de tela, PDFs e arquivos de imagem. O método Read funciona de forma consistente em todos esses formatos, retornando o mesmo objeto OcrResult estruturado com metadados completos.

Como o texto extraído é organizado nos resultados?

O IronOCR organiza o texto extraído em uma estrutura hierárquica que espelha a organização natural de um documento. O objeto OcrResult apresenta o conteúdo em diferentes níveis de granularidade — desde páginas inteiras até caracteres individuais — facilitando o trabalho com o texto no nível apropriado para sua aplicação.

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.