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();
    }
}
$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();
    }
}
$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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me