Como usar visão computacional para encontrar texto em C#

Como Encontrar Texto com Visão Computacional em C#

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

O IronOCR usa visão computacional OpenCV para detectar automaticamente regiões de texto em imagens antes do processamento OCR. Isso melhora a precisão para textos ruidosos, com várias regiões ou distorções, focando o reconhecimento Tesseract apenas nas áreas de texto identificadas, melhorando significativamente os resultados da extração em comparação com o processamento de imagens inteiras.

Início Rápido: Detectar e OCR a Região de Texto Primária

Este exemplo demonstra extração de texto imediata: carregue uma imagem, use a visão computacional do IronOCR para detectar automaticamente a região principal do texto com FindTextRegion(), depois execute .Read(...) para extrair texto em uma linha.

  1. Instale IronOCR com o Gerenciador de Pacotes NuGet

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

    using var result = new IronTesseract().Read(new OcrInput().LoadImage("image.png").FindTextRegion());
  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

Como Instalo o IronOcr.ComputerVision via Pacote NuGet?

Os métodos OpenCV que realizam Visão Computacional no IronOCR são visíveis no pacote NuGet regular do IronOCR. Para orientações detalhadas sobre a instalação, veja nosso guia de instalação do NuGet.

Por Que o IronOCR Exige um Pacote de Visão Computacional Separado?

Usar esses métodos requer a instalação do NuGet do IronOcr.ComputerVision na solução. Você será solicitado a baixá-lo se não tiver instalado. A funcionalidade de visão computacional aproveita algoritmos OpenCV que melhoram significativamente a precisão da detecção de texto, semelhante às técnicas usadas em nosso reconhecimento de placa de veículo e escaneamento de passaportes.

Qual Pacote Específico de Plataforma Devo Instalar?

Como Instalar Usando o Console do Gerenciador de Pacotes?

Instale usando o NuGet Package Manager ou cole o seguinte no Console do Gerenciador de Pacotes:

Install-Package IronOcr.ComputerVision.Windows

Isso fornece os assemblies necessários para usar o IronOCR Visão Computacional com nosso arquivo modelo.

Quais Métodos de Visão Computacional Estão Disponíveis no IronOCR?

Exemplos de código estão incluídos mais adiante neste tutorial. Aqui está uma visão geral dos métodos atualmente disponíveis:

Método Explicação
FindTextRegion Detecte regiões que contenham elementos de texto e instrua o Tesseract a procurar texto apenas na área em que o texto foi detectado.
FindMultipleTextRegions Detecte áreas que contenham elementos de texto e divida a página em imagens separadas com base nas regiões de texto.
GetTextRegions Scans the image and returns a list of text regions as `List`.

Como Uso o FindTextRegion para Detectar Áreas de Texto?

FindTextRegion usa visão computacional para detectar regiões contendo elementos de texto em cada página de um objeto OcrInput. Este método é particularmente útil ao processar imagens com texto disperso ou quando você precisa melhorar o desempenho focando apenas em áreas que contêm texto.

Qual é o Uso Básico do FindTextRegion?

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-1.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindTextRegion();
OcrResult result = ocr.Read(input);
string resultText = result.Text;
$vbLabelText   $csharpLabel

Cuidado Esta sobrecarga de método está atualmente obsoleta em IronOcr 2025.6.x e não aceita parâmetros personalizados.

Como Posso Personalizar os Parâmetros do FindTextRegion?

Chamare este método com parâmetros personalizados para ajustar a detecção de texto. Estes parâmetros funcionam de forma semelhante às nossas configurações de filtro de imagem:

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-2.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindTextRegion(Scale: 2.0, DilationAmount: 20, Binarize: true, Invert: true);
OcrResult result = ocr.Read(input);
string resultText = result.Text;
$vbLabelText   $csharpLabel

Como é o FindTextRegion na Prática?

Neste exemplo, eu uso a seguinte imagem para um método que precisa recortar para áreas que contêm texto, mas as imagens de entrada podem variar quanto à localização do texto. Eu uso FindTextRegion para restringir a digitalização a uma área em que a visão computacional detectou texto. Essa abordagem é semelhante às técnicas usadas no nosso tutorial de áreas de conteúdo e regiões de recorte. Esta é uma imagem de exemplo:

Estatísticas da empresa IronSoftware 2022 mostrando métricas de desenvolvedores e dados de desempenho comercial
:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-3.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
using System.Linq;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("wh-words-sign.jpg");

// Find the text region using Computer Vision
Rectangle textCropArea = input.GetPages().First().FindTextRegion();

// For debugging and demonstration purposes, lets see what region it found:
input.StampCropRectangleAndSaveAs(textCropArea, Color.Red, "image_text_area", AnyBitmap.ImageFormat.Png);

// Looks good, so let us apply this region to hasten the read:
var ocrResult = ocr.Read("wh-words-sign.jpg", textCropArea);
Console.WriteLine(ocrResult.Text);
$vbLabelText   $csharpLabel

Como Faço para Depurar e Verificar a Detecção de Região de Texto?

Este código tem duas saídas. O primeiro é um arquivo .png salvo por StampCropRectangleAndSaveAs usado para depuração. Essa técnica também é abordada no nosso guia de realce de textos para depuração. Podemos ver onde o IronCV (Visão Computacional) detectou o texto:

Estatísticas IronSoftware 2022 com caixa de borda vermelha mostrando a funcionalidade de detecção de texto FindTextRegion

A detecção identifica com precisão a área de texto. A segunda saída é o próprio texto:

IRONSOFTWARE

50,000+

Developers in our active community

10,777,061 19,313
NuGet downloads Support tickets resolved
50%+ 80%+
Engineering Team growth Support Team growth
$25,000+

Raised with #TEAMSEAS to clean our beaches & waterways

Como Uso o FindMultipleTextRegions para Múltiplas Áreas de Texto?

FindMultipleTextRegions pega todas as páginas de um objeto OcrInput e usa visão computacional para detectar áreas contendo elementos de texto, depois divide a entrada em imagens separadas com base nas regiões de texto. Isto é particularmente útil para processar documentos com múltiplas áreas de texto distintas, semelhante à nossa funcionalidade de leitura de tabela em documento:

Qual é o Uso Básico do FindMultipleTextRegions?

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-1.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindMultipleTextRegions();
OcrResult result = ocr.Read(input);
string resultText = result.Text;
$vbLabelText   $csharpLabel

Cuidado A partir do IronOcr v2025.6.x, o método FindMultipleTextRegions não suporta mais parâmetros personalizados.

Como Posso Personalizar os Parâmetros do FindMultipleTextRegions?

Chame este método com parâmetros personalizados para controlar como as regiões são detectadas e separadas:

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-2.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindMultipleTextRegions(Scale: 2.0, DilationAmount: -1, Binarize: true, Invert: false);
OcrResult result = ocr.Read(input);
string resultText = result.Text;
$vbLabelText   $csharpLabel

Como Processar Páginas Individuais com o FindMultipleTextRegions?

Outro método de sobrecarga do FindMultipleTextRegions pega uma Página OCR e retorna uma lista de Páginas OCR, uma para cada região de texto nela. Esta abordagem ajuda a lidar com layouts complexos, semelhante às técnicas descritas no nosso guia de processamento de TIFF multipágina:

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-3.cs
using IronOcr;
using System.Collections.Generic;
using System.Linq;

int pageIndex = 0;
using var input = new OcrInput();
input.LoadImage("/path/file.png");

var selectedPage = input.GetPages().ElementAt(pageIndex);
List<OcrInputPage> textRegionsOnPage = selectedPage.FindMultipleTextRegions();
$vbLabelText   $csharpLabel

Como Uso o GetTextRegions para Obter as Coordenadas das Regiões de Texto?

GetTextRegions retorna uma lista de áreas de recorte onde o texto foi detectado em uma página. Este método é particularmente útil quando você precisa das coordenadas das regiões de texto para processamento posterior ou na implementação de fluxos de trabalho OCR personalizados. Para mais detalhes sobre como trabalhar com resultados, consulte nossa documentação da classe OcrResult:

Quando Devo Usar o GetTextRegions em Vez do FindTextRegion?

/* :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-gettextregions.cs */
using IronOcr;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;

// Create a new IronTesseract object for OCR
var ocr = new IronTesseract();

// Load an image into OcrInput
using var input = new OcrInput();
input.LoadImage("/path/file.png");

// Get the first page from the input
var firstPage = input.GetPages().First();

// Get all text regions detected on this page
List<Rectangle> textRegions = firstPage.GetTextRegions();

// Display information about each detected region
Console.WriteLine($"Found {textRegions.Count} text regions:");
foreach (var region in textRegions)
{
    Console.WriteLine($"Region at X:{region.X}, Y:{region.Y}, Width:{region.Width}, Height:{region.Height}");
}

// You can also process each region individually
foreach (var region in textRegions)
{
    var regionResult = ocr.Read(input, region);
    Console.WriteLine($"Text in region: {regionResult.Text}");
}
/* :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-gettextregions.cs */
using IronOcr;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;

// Create a new IronTesseract object for OCR
var ocr = new IronTesseract();

// Load an image into OcrInput
using var input = new OcrInput();
input.LoadImage("/path/file.png");

// Get the first page from the input
var firstPage = input.GetPages().First();

// Get all text regions detected on this page
List<Rectangle> textRegions = firstPage.GetTextRegions();

// Display information about each detected region
Console.WriteLine($"Found {textRegions.Count} text regions:");
foreach (var region in textRegions)
{
    Console.WriteLine($"Region at X:{region.X}, Y:{region.Y}, Width:{region.Width}, Height:{region.Height}");
}

// You can also process each region individually
foreach (var region in textRegions)
{
    var regionResult = ocr.Read(input, region);
    Console.WriteLine($"Text in region: {regionResult.Text}");
}
$vbLabelText   $csharpLabel

Quais São os Casos de Uso Comuns para a Visão Computacional em OCR?

A visão computacional melhora significativamente a precisão do OCR em cenários desafiadores. Aqui estão aplicações práticas:

  1. Análise de Layout de Documento: Identifique e processe automaticamente diferentes seções de documentos complexos. Especialmente útil com documentos escaneados.

  2. Texto em Múltiplas Colunas: Separe e leia colunas independentemente para jornais ou revistas. Use processamento multithread para resultados mais rápidos.

  3. Conteúdo Misto: Distinguir entre regiões de texto e gráficos em documentos. Útil ao processar fotos com texto embutido.

  4. Otimização de Desempenho: Focar o processamento OCR apenas em áreas que contêm texto. Veja nosso guia de configuração rápida de OCR.

  5. Controle de Qualidade: Verifique a detecção de texto antes do processamento completo de OCR. Nossa função de rastreamento de progresso monitora cada estágio.

Com as configurações corretas e arquivos de entrada, o OCR pode alcançar uma capacidade de leitura quase humana. Para resultados ótimos, combine visão computacional com nossos filtros de otimização de imagem para alcançar a melhor precisão possível do OCR. Ao trabalhar com imagens de baixa qualidade, nosso guia sobre corrigir digitalizações de baixa qualidade fornece técnicas de pré-processamento valiosas.

Técnicas Avançadas de Visão Computacional

Para desenvolvedores que buscam ultrapassar os limites de precisão do OCR, considere essas abordagens avançadas:

Perguntas frequentes

O que é visão computacional em OCR e como ela melhora a extração de texto?

A Visão Computacional no IronOCR utiliza algoritmos OpenCV para detectar automaticamente regiões de texto em imagens antes do processamento OCR. Isso melhora significativamente a precisão para textos ruidosos, com múltiplas regiões ou distorcidos, concentrando o reconhecimento do Tesseract apenas nas áreas de texto identificadas, em vez de processar imagens inteiras.

Como posso implementar rapidamente OCR de visão computacional em C#?

O IronOCR permite implementar OCR por visão computacional em apenas uma linha de código: use o IronTesseract com o método FindTextRegion() para detectar automaticamente a região de texto principal e, em seguida, execute .Read() para extrair o texto imediatamente.

Por que preciso instalar um pacote de Visão Computacional separado?

O IronOCR requer o pacote NuGet IronOcr.ComputerVision, pois a funcionalidade de visão computacional utiliza algoritmos OpenCV. Esses algoritmos melhoram significativamente a precisão da detecção de texto e são essenciais para recursos como reconhecimento de placas de veículos e digitalização de passaportes.

Qual pacote de Visão Computacional específico para a plataforma devo instalar?

O IronOCR oferece pacotes específicos para cada plataforma: IronOcr.ComputerVision.Windows para sistemas Windows, IronOcr.ComputerVision.Linux para distribuições Linux e IronOcr.ComputerVision.MacOS para ambientes macOS.

Como posso detectar várias regiões de texto em uma imagem?

O IronOCR oferece o método FindMultipleTextRegions para separar a imagem original em múltiplas imagens com base nas regiões de texto detectadas. Você também pode usar o método GetTextRegions para obter uma lista das áreas recortadas onde o texto foi detectado.

Posso verificar quais regiões de texto foram detectadas antes do processamento?

Sim, o IronOCR inclui o método StampCropRectangleAndSaveAs, que permite verificar quais regiões de texto foram detectadas pelos algoritmos de Visão Computacional antes de executar o processo de OCR propriamente dito.

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.