Ir para o conteúdo do rodapé
FERRAMENTAS DE OCR

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.

Como obter reconhecimento de texto OCR, Figura 1: Instale o pacote Tesseract no 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
$vbLabelText   $csharpLabel
  • Primeiro, um objeto TesseractEngine deve 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 TesseractEngine para extrair texto usando o método Process.
  • O texto reconhecido é obtido com o método GetText e impresso no console.

Como obter reconhecimento de texto OCR, Figura 2: Texto extraído da imagem Texto extraído da imagem

1.3 Considerações sobre o Tesseract

  1. 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.
  2. 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.
  3. O Tesseract pode distinguir entre texto com espaçamento monoespaçado e proporcional.
  4. 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.
  5. 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.

Como obter reconhecimento de texto OCR, Figura 3: Instale o IronOcr e os pacotes de idiomas via Gerenciador de Pacotes NuGet 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
$vbLabelText   $csharpLabel
  • 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étodo AddImage.
  • O método Read de IronTesseract processa a imagem e extrai o texto, que é então impresso no console.

Como obter reconhecimento de texto OCR, Figura 4: Saída de texto extraído usando a biblioteca IronOCR Saída de texto extraído usando a biblioteca IronOCR

2.3 Considerações sobre o IronOCR

  1. IronOCR é uma extensão da biblioteca Tesseract, introduzindo mais estabilidade e maior precisão.
  2. 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.
  3. A saída pode ser renderizada como texto simples, dados estruturados, códigos de barras ou códigos QR.
  4. A biblioteca reconhece 125 idiomas em todo o mundo.
  5. 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.
  6. 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#.

Kannaopat Udonpant
Engenheiro de Software
Antes de se tornar Engenheiro de Software, Kannapat concluiu um doutorado em Recursos Ambientais pela Universidade de Hokkaido, no Japão. Durante o doutorado, Kannapat também integrou o Laboratório de Robótica Veicular, que faz parte do Departamento de Engenharia de Bioprodução. Em 2022, ele utilizou suas habilidades ...
Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim