Como extrair texto de imagens usando o Tesseract
Aproveitar bibliotecas como IronOCR e Tesseract concede aos desenvolvedores acesso a algoritmos avançados e técnicas de aprendizado de máquina para extrair informações textuais de imagens e documentos digitalizados. Este tutorial mostrará aos leitores como usar a biblioteca Tesseract para executar a extração de texto de imagens e, em seguida, concluirá introduzindo a abordagem única do IronOCR.
1. OCR com Tesseract
1.1. Instalar Tesseract
Usando o Console do Gerenciador de Pacotes NuGet, digite o seguinte comando:
Install-Package Tesseract
Ou baixe o pacote através do Gerenciador de Pacotes NuGet.
Instale o pacote Tesseract no Gerenciador de Pacotes NuGet
Você deve instalar manualmente e salvar os arquivos de idioma na pasta do projeto após instalar o Pacote NuGet. Isso pode ser considerado uma deficiência desta biblioteca específica.
Visite o seguinte site para baixar os arquivos de idioma. Depois de baixados, descompacte os arquivos e adicione a pasta "tessdata" à pasta de depuração do seu projeto.
1.2. Usando Tesseract (Início rápido)
OCR em uma imagem dada pode ser executado usando o código fonte abaixo:
using Tesseract;
class Program
{
static void Main()
{
// Initialize Tesseract engine with English language data
using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
// Load the image to be processed
using var img = Pix.LoadFromFile("Demo.png");
// Process the image to extract text
using var res = ocrEngine.Process(img);
// Output the recognized text
Console.WriteLine(res.GetText());
Console.ReadKey();
}
}
using Tesseract;
class Program
{
static void Main()
{
// Initialize Tesseract engine with English language data
using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
// Load the image to be processed
using var img = Pix.LoadFromFile("Demo.png");
// Process the image to extract text
using var res = ocrEngine.Process(img);
// Output the recognized text
Console.WriteLine(res.GetText());
Console.ReadKey();
}
}
Imports Tesseract
Friend Class Program
Shared Sub Main()
' Initialize Tesseract engine with English language data
Dim ocrEngine = New TesseractEngine("tessdata", "eng", EngineMode.Default)
' Load the image to be processed
Dim img = Pix.LoadFromFile("Demo.png")
' Process the image to extract text
Dim res = ocrEngine.Process(img)
' Output the recognized text
Console.WriteLine(res.GetText())
Console.ReadKey()
End Sub
End Class
- Primeiro, um objeto
TesseractEnginedeve ser criado, carregando os dados de idioma no mecanismo. - O arquivo de imagem desejado é então carregado com a ajuda de
Pix.LoadFromFile. - A imagem é passada para o
TesseractEnginepara extrair texto usando o métodoProcess. - O texto reconhecido é obtido com o método
GetTexte impresso no console.
Texto extraído da imagem
1.3 Considerações sobre o Tesseract
- O Tesseract suporta formatação de texto de saída, dados posicionais de OCR e análise de layout de página a partir da versão 3.00.
- O Tesseract está disponível no Windows, Linux e MacOS, embora seja principalmente confirmado para funcionar como pretendido no Windows e Ubuntu devido a suporte de desenvolvimento limitado.
- O Tesseract pode distinguir entre texto com espaçamento monoespaçado e proporcional.
- Utilizando um front-end como OCRopus, o Tesseract é ideal para uso como back-end e pode ser utilizado para trabalhos de OCR mais desafiadores, como análise de layout.
- Algumas das deficiências do Tesseract:
- As versões mais recentes não foram projetadas para compilar no Windows
- As APIs wrappers do Tesseract em C# são mantidas infrequentemente e estão anos atrasadas em relação aos novos lançamentos do Tesseract
Para saber mais sobre o Tesseract em C#, visite o tutorial do Tesseract.
2. OCR com IronOCR
2.1. Instalando o IronOCR
Insira o próximo comando no Console do Gerenciador de Pacotes NuGet:
Install-Package IronOcr
Ou instale a biblioteca IronOCR através do Gerenciador de Pacotes NuGet, juntamente com pacotes adicionais para outros idiomas, que são simples e convenientes de usar.
Instale o IronOcr e pacotes de idiomas via Gerenciador de Pacotes NuGet
2.2. Usando o IronOCR
Abaixo está um exemplo de código para reconhecer o texto da imagem fornecida:
using IronOcr;
class Program
{
static void Main()
{
// Create an IronTesseract instance with predefined settings
var ocr = new IronTesseract()
{
Language = OcrLanguage.EnglishBest,
Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
};
// Create an OcrInput instance for image processing
using var input = new OcrInput();
// Load the image to be processed
input.AddImage("Demo.png");
// Process the image and extract text
var result = ocr.Read(input);
// Output the recognized text
Console.WriteLine(result.Text);
Console.ReadKey();
}
}
using IronOcr;
class Program
{
static void Main()
{
// Create an IronTesseract instance with predefined settings
var ocr = new IronTesseract()
{
Language = OcrLanguage.EnglishBest,
Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
};
// Create an OcrInput instance for image processing
using var input = new OcrInput();
// Load the image to be processed
input.AddImage("Demo.png");
// Process the image and extract text
var result = ocr.Read(input);
// Output the recognized text
Console.WriteLine(result.Text);
Console.ReadKey();
}
}
Imports IronOcr
Friend Class Program
Shared Sub Main()
' Create an IronTesseract instance with predefined settings
Dim ocr = New IronTesseract() With {
.Language = OcrLanguage.EnglishBest,
.Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
}
' Create an OcrInput instance for image processing
Dim input = New OcrInput()
' Load the image to be processed
input.AddImage("Demo.png")
' Process the image and extract text
Dim result = ocr.Read(input)
' Output the recognized text
Console.WriteLine(result.Text)
Console.ReadKey()
End Sub
End Class
- Este código inicializa um objeto
IronTesseract, configurando o idioma e a versão do Tesseract. - Um objeto
OcrInputé então criado para carregar arquivos de imagem usando o métodoAddImage. - O método
ReaddeIronTesseractprocessa a imagem e extrai o texto, que é então impresso no console.
Saída de texto extraído usando a biblioteca IronOCR
2.3 Considerações sobre o IronOCR
- IronOCR é uma extensão da biblioteca Tesseract, introduzindo mais estabilidade e maior precisão.
- IronOCR pode ler conteúdo de texto de PDFs e fotos. Ele também pode ler mais de 20 tipos distintos de códigos de barras e códigos QR.
- A saída pode ser renderizada como texto simples, dados estruturados, códigos de barras ou códigos QR.
- A biblioteca reconhece 125 idiomas em todo o mundo.
- O IronOCR funciona em todos os ambientes .NET de forma flexível (console, Web, desktop, etc.), e também suporta as mais recentes estruturas móveis como Mono, Xamarin, Azure, e MAUI.
- O IronOCR oferece uma versão de teste gratuita e possui uma edição de desenvolvimento com preço reduzido. Saiba mais sobre licenciamento.
Para um tutorial detalhado do IronOCR, consulte este artigo para ler texto de uma imagem em C#.




