Como definir uma região OCR específica de uma imagem em C
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 então passe-o para o método LoadImage para processamento OCR direcionado.
Início Rápido: Extrair Texto de uma Região Específica da Imagem
-
Instale IronOCR com o Gerenciador de Pacotes NuGet
PM > Install-Package IronOcr -
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); -
Implante para testar em seu ambiente de produção.
Comece a usar IronOCR em seu projeto hoje com uma avaliação gratuita
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 definir uma região OCR específica em uma imagem
- Baixe a biblioteca C# para definir a região de OCR.
- Instancie o mecanismo de OCR
- Especifique a região de OCR com um retângulo.
- Carregue a imagem com
LoadImagejuntamente com o retângulo definido. - Acesse a propriedade OcrResult para visualizar e manipular os dados extraídos.
Como posso realizar OCR em uma região específica?
Para definir uma região OCR específica, você cria um objeto Rectangle do namespace IronSoftware.Drawing. Este objeto requer quatro valores: a coordenada x-, a coordenada y-, a coordenada width e a coordenada height, todas em pixels. As coordenadas (x, y) representam o canto superior esquerdo da área desejada.
Ao carregar sua imagem usando LoadImage, você passa este Rectangle como 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 do seu Rectangle, você pode usar um editor de imagens simples como o MS Paint. Abra a imagem de entrada, passe o cursor do 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.
Como implementar OCR regional no código?
A implementação envolve a criação de um objeto OcrInput e o carregamento da 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);
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
Dim ocrTesseract As New IronTesseract()
Using ocrInput As New OcrInput()
' Define the specific region as a Rectangle
' (x, y) is the top-left corner.
Dim ContentArea As New Rectangle(x:=215, y:=1250, width:=1335, height:=280)
ocrInput.LoadImage("region-input.png", ContentArea)
Dim ocrResult = ocrTesseract.Read(ocrInput)
' Print the extracted text
Console.WriteLine(ocrResult.Text)
End Using
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}");
Imports IronOcr
Imports IronSoftware.Drawing
Dim ocr As New IronTesseract()
Using input As New OcrInput()
' Define multiple regions for different form fields
Dim nameField As New Rectangle(x:=100, y:=200, width:=300, height:=50)
Dim dateField As New Rectangle(x:=100, y:=300, width:=200, height:=50)
Dim amountField As New Rectangle(x:=400, y:=500, width:=150, height:=50)
' Load the same image multiple times with different regions
input.LoadImage("form.png", nameField)
Dim nameResult = ocr.Read(input)
input.Clear()
input.LoadImage("form.png", dateField)
Dim dateResult = ocr.Read(input)
input.Clear()
input.LoadImage("form.png", amountField)
Dim amountResult = ocr.Read(input)
' Process each field separately
Console.WriteLine($"Name: {nameResult.Text}")
Console.WriteLine($"Date: {dateResult.Text}")
Console.WriteLine($"Amount: {amountResult.Text}")
End Using
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.
A precisão do OCR regional depende de vários fatores:
- Qualidade da imagem : Imagens com resolução mais alta geralmente produzem melhores resultados. Considere usar as configurações de DPI para otimizar suas imagens.
- Orientação do texto : Certifique-se de que o texto esteja alinhado corretamente. Utilize a detecção de rotação de página, se necessário.
- Contraste e nitidez : Aplique filtros de correção de imagem para melhorar a legibilidade do texto.
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á-lo 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");
Imports IronOcr
Imports IronSoftware.Drawing
Dim ocrTesseract = New IronTesseract()
Using ocrInput As 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.
Dim ContentArea As New Rectangle(x:=4, y:=59, width:=365, height:=26)
ocrInput.LoadImage("region-input.png", ContentArea)
Dim 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")
End Using
Como será a visualização?
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:
- Processamento de formulários : Ao extrair campos específicos de formulários padronizados onde os dados aparecem em locais consistentes.
- Processamento de Faturas : Para extrair valores específicos, como totais, datas ou números de faturas, sem processar o documento inteiro.
- Placas de veículos : Ao usar o reconhecimento de placas , concentre-se apenas na área da placa.
- Documentos de identidade : Extrair campos específicos de passaportes ou carteiras de identidade.
- 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:
- Adicione espaçamento : Inclua uma pequena margem ao redor do texto para garantir que nenhum caractere seja cortado nas bordas.
- Teste com imagens de amostra : Sempre verifique suas coordenadas com amostras representativas antes de processar grandes lotes.
- 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.
- Otimizar o desempenho : Para processamento multithread , processe diferentes regiões em paralelo.
- 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.
O IronOCR suporta vários idiomas?
O IronOCR suporta múltiplos idiomas, tornando-se uma ferramenta versátil para aplicações globais que requerem reconhecimento de texto em diferentes idiomas.
O IronOCR pode ser integrado em aplicações existentes?
O IronOCR é projetado para ser facilmente integrado em aplicações existentes usando C#, permitindo que os desenvolvedores adicionem funcionalidades de OCR ao seu software com esforço mínimo.
Quais são os benefícios de usar o IronOCR para gestão de documentos?
Usar o IronOCR para gestão de documentos simplifica o fluxo de trabalho convertendo documentos escaneados em texto pesquisável e editável, reduzindo a necessidade de inserção manual de dados e melhorando a acessibilidade dos documentos.
Como o IronOCR pode melhorar a precisão dos dados?
O IronOCR melhora a precisão dos dados através de seus algoritmos avançados de reconhecimento e recursos de correção de imagem, assegurando que o processo de extração de texto seja tanto confiável quanto preciso.
Há uma avaliação gratuita disponível para o IronOCR?
Sim, o Iron Software oferece uma avaliação gratuita do IronOCR, permitindo que os usuários testem seus recursos e capacidades antes de tomar uma decisão de compra.

