Como definir uma região OCR específica de uma imagem em C

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

Para extrair texto de uma região específica de uma imagem em C#, use o objeto Rectangle do IronOCR para definir a área exata, especificando as coordenadas y, width e height, e depois passe-a para o método LoadImage para processamento de OCR direcionado.

Início Rápido: Extrair Texto de uma Região Específica da Imagem

  1. Instale IronOCR com o Gerenciador de Pacotes NuGet

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

    using IronOcr;
    using IronSoftware.Drawing;
    
    // 1. Install IronOCR via NuGet: Install-Package IronOcr
    var ocr = new IronTesseract();
    using var input = new OcrInput();
    
    // 2. Create a Rectangle with coordinates
    var region = new Rectangle(x: 215, y: 1250, width: 1335, height: 280);
    
    // 3. Load image with region
    input.LoadImage("image.png", region);
    
    // 4. Extract text
    var result = ocr.Read(input);
    Console.WriteLine(result.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

Muitas vezes, basta extrair o texto de uma pequena parte de uma imagem, como o valor total de uma fatura ou um campo específico de um formulário. A digitalização completa do documento é ineficiente e pode introduzir erros ao capturar texto irrelevante.

O IronOCR permite melhorar a precisão, o desempenho e a exatidão, especificando a região retangular exata a ser digitalizada. Este guia fornece um passo a passo sobre como definir uma região OCR específica, extrair texto dela e verificar visualmente se as coordenadas estão corretas para as tarefas de OCR.

Comece a usar o IronOCR


Como posso realizar OCR em uma região específica?

Para definir uma região de OCR específica, você cria um objeto Rectangle a partir do namespace IronSoftware.Drawing. Este objeto requer quatro valores: a coordenada x, a coordenada y, width e height, todos em pixels. As coordenadas (x, y) representam o canto superior esquerdo da área desejada.

Quando você carrega sua imagem usando LoadImage, você passa este Rectangle como o segundo parâmetro. O IronOCR restringirá então seu processo de OCR apenas aos pixels dentro dessa caixa delimitadora.

O OCR regional é particularmente útil ao trabalhar com documentos estruturados, como faturas , formulários digitalizados ou documentos de identidade , onde informações específicas sempre aparecem em locais previsíveis. Ao limitar o OCR apenas às áreas relevantes, você pode melhorar significativamente a velocidade de processamento e reduzir os falsos positivos provenientes de textos não relacionados.

Para encontrar as coordenadas para seu Rectangle, você pode usar um editor de imagem simples como o MS Paint. Abra sua imagem de entrada, coloque o mouse sobre os cantos superior esquerdo e inferior direito da região especificada e anote as coordenadas de pixel (x, y). Você pode então calcular as propriedades do retângulo: (x1, y1, width, height), onde width = x1 e height = y1.

Que imagem devo usar para o teste?

Usaremos uma imagem de exemplo com três parágrafos. Nosso objetivo é extrair apenas o segundo parágrafo e ignorar o restante do texto. Isso demonstra um cenário comum em que você precisa extrair campos ou seções específicas de um documento maior.

Janela do terminal exibindo os resultados do OCR com o cabeçalho

Como implementar OCR regional no código?

A implementação envolve criar um objeto OcrInput e carregar sua imagem com a região retangular especificada. Essa abordagem funciona com vários formatos de imagem, incluindo JPG, PNG, GIF, TIFF e BMP .

:path=/static-assets/ocr/content-code-examples/how-to/ocr-region-of-an-image.cs
using IronOcr;
using IronSoftware.Drawing;
using System;

var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();

// Define the specific region as a Rectangle
// (x, y) is the top-left corner.
var ContentArea = new Rectangle(x: 215, y: 1250, width: 1335, height: 280);

ocrInput.LoadImage("region-input.png", ContentArea);

var ocrResult = ocrTesseract.Read(ocrInput);

// Print the extracted text
Console.WriteLine(ocrResult.Text);
$vbLabelText   $csharpLabel

Para cenários mais complexos, você pode definir várias regiões dentro da mesma imagem. Isso é particularmente útil ao processar formulários com vários campos ou tabelas em documentos :

using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();
using var input = new OcrInput();

// Define multiple regions for different form fields
var nameField = new Rectangle(x: 100, y: 200, width: 300, height: 50);
var dateField = new Rectangle(x: 100, y: 300, width: 200, height: 50);
var amountField = new Rectangle(x: 400, y: 500, width: 150, height: 50);

// Load the same image multiple times with different regions
input.LoadImage("form.png", nameField);
var nameResult = ocr.Read(input);

input.Clear();
input.LoadImage("form.png", dateField);
var dateResult = ocr.Read(input);

input.Clear();
input.LoadImage("form.png", amountField);
var amountResult = ocr.Read(input);

// Process each field separately
Console.WriteLine($"Name: {nameResult.Text}");
Console.WriteLine($"Date: {dateResult.Text}");
Console.WriteLine($"Amount: {amountResult.Text}");
using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();
using var input = new OcrInput();

// Define multiple regions for different form fields
var nameField = new Rectangle(x: 100, y: 200, width: 300, height: 50);
var dateField = new Rectangle(x: 100, y: 300, width: 200, height: 50);
var amountField = new Rectangle(x: 400, y: 500, width: 150, height: 50);

// Load the same image multiple times with different regions
input.LoadImage("form.png", nameField);
var nameResult = ocr.Read(input);

input.Clear();
input.LoadImage("form.png", dateField);
var dateResult = ocr.Read(input);

input.Clear();
input.LoadImage("form.png", amountField);
var amountResult = ocr.Read(input);

// Process each field separately
Console.WriteLine($"Name: {nameResult.Text}");
Console.WriteLine($"Date: {dateResult.Text}");
Console.WriteLine($"Amount: {amountResult.Text}");
$vbLabelText   $csharpLabel

Que resultados posso esperar?

Como pode ser observado na saída do console, apenas o segundo parágrafo foi processado pelo OCR. Essa abordagem direcionada garante que textos irrelevantes de outras partes da imagem não interfiram nos seus resultados.

Saída OCR

A precisão do OCR regional depende de vários fatores:

Como posso verificar se minhas coordenadas estão corretas?

Para garantir que você selecionou as coordenadas corretas para a imagem de entrada, você pode visualizar a ContentArea que definiu. Uma maneira simples de fazer isso é desenhar o retângulo na imagem de entrada e salvá-la como um novo arquivo com StampCropRectangleAndSaveAs. Isso ajuda você a depurar e ajustar as coordenadas para obter o desempenho ideal.

Essa técnica de visualização é especialmente útil ao trabalhar com layouts complexos ou quando é necessário destacar áreas de texto específicas para fins de garantia de qualidade.

Aqui está a imagem resultante após desenhar a caixa delimitadora especificada na imagem de entrada de exemplo acima.

Como faço para visualizar a região selecionada?

:path=/static-assets/ocr/content-code-examples/how-to/ocr-region-of-an-image-highlighted.cs
using IronOcr;
using IronSoftware.Drawing;

var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();

// Define the specific rectangular area to scan within the image.
// The coordinates are in pixels: (x, y) is the top-left corner of the rectangle.
var ContentArea = new Rectangle(x: 4, y: 59, width: 365, height: 26);

ocrInput.LoadImage("region-input.png", ContentArea);

var ocrResult = ocrTesseract.Read(ocrInput);

// Draws the rectangle from above in a blue bounding box on the image for visualization.
ocrInput.StampCropRectangleAndSaveAs(ContentArea, Color.Aqua, "region-input.png");
$vbLabelText   $csharpLabel

Como será a visualização?

Saída destacada do OCR

O retângulo azul claro confirma que isolamos corretamente o segundo parágrafo para processamento.

Quando devo usar o OCR regional?

O OCR regional é ideal para diversos cenários comuns:

  1. Processamento de formulários : Ao extrair campos específicos de formulários padronizados onde os dados aparecem em locais consistentes.
  2. Processamento de Faturas : Para extrair valores específicos, como totais, datas ou números de faturas, sem processar o documento inteiro.
  3. Placas de veículos : Ao usar o reconhecimento de placas , concentre-se apenas na área da placa.
  4. Documentos de identidade : Extrair campos específicos de passaportes ou carteiras de identidade.
  5. Capturas de tela : Ao capturar texto de elementos específicos da interface do usuário em capturas de tela .

Melhores práticas para OCR regional

Para obter resultados ótimos com OCR regional:

  1. Adicione espaçamento : Inclua uma pequena margem ao redor do texto para garantir que nenhum caractere seja cortado nas bordas.
  2. Teste com imagens de amostra : Sempre verifique suas coordenadas com amostras representativas antes de processar grandes lotes.
  3. Lidar com variações : Leve em consideração pequenas variações de posicionamento em documentos digitalizados, criando regiões ligeiramente maiores do que o necessário.
  4. Otimizar o desempenho : Para processamento multithread , processe diferentes regiões em paralelo.
  5. Monitore a confiança : Verifique os índices de confiança dos resultados para garantir a precisão.

Ao concentrar o processamento OCR em regiões específicas, você pode melhorar significativamente tanto a velocidade quanto a precisão de suas tarefas de extração de texto. Essa abordagem direcionada é essencial para a criação de fluxos de trabalho de processamento de documentos eficientes em seus aplicativos .NET.

Perguntas frequentes

Como posso extrair texto apenas de uma parte específica de uma imagem em C#?

Com o IronOCR, você pode extrair texto de uma região específica criando um objeto Retângulo com coordenadas x/y, largura e altura. Passe esse Retângulo como segundo parâmetro para o método LoadImage, e o IronOCR restringirá o processamento de OCR apenas à área definida.

Quais são as vantagens de definir uma região de OCR em vez de digitalizar a imagem inteira?

Ao definir uma região OCR específica com o IronOCR, você pode melhorar a velocidade de processamento, aumentar a precisão e reduzir erros na captura de texto irrelevante. Isso é especialmente útil para documentos estruturados, onde as informações aparecem em locais previsíveis.

Quais parâmetros preciso para criar um retângulo para OCR regional?

Para criar um retângulo para o OCR regional do IronOCR, você precisa de quatro valores em pixels: coordenada x, coordenada y, largura e altura. As coordenadas (x, y) representam o canto superior esquerdo da área de digitalização desejada.

Qual namespace contém o objeto Rectangle para regiões OCR?

O objeto Rectangle usado para definir regiões de OCR no IronOCR está localizado no namespace IronSoftware.Drawing.

Que tipos de documentos se beneficiam mais do processamento OCR regional?

O OCR regional do IronOCR é particularmente eficaz para documentos estruturados, como faturas, formulários digitalizados e documentos de identidade, onde informações específicas aparecem consistentemente nos mesmos locais.

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.