Ir para o conteúdo do rodapé
UTILIZANDO O IRONOCR

Tutorial de como obter o texto de uma fatura em C#

Como fazer OCR de Comprovante em Tesseract

  1. Instale a biblioteca C# OCR para comprovantes com Tesseract
  2. Explore os recursos da rica biblioteca C# para realizar OCR em comprovantes
  3. Extraia dados do comprovante com Tesseract
  4. Procure no resultado do texto extraído por dados específicos
  5. Leia o valor dos códigos de barras na imagem do comprovante

1. IronOCR, Uma API de Reconhecimento Óptico de Caracteres

IronOCR é uma biblioteca OCR que pode ser usada para reconhecer dados de texto de imagens para extração de informações, incluindo OCR de comprovantes. Ela é construída com base no motor OCR Tesseract, considerado um dos motores OCR mais precisos disponíveis hoje para reconhecimento de comprovantes. IronOCR pode ler informações-chave de diferentes tipos de documentos, incluindo formatos PNG, JPG, TIFF, JSON e PDF, e pode reconhecer texto em vários idiomas.

Um dos recursos principais do IronOCR que o torna particularmente útil para OCR de comprovantes é sua capacidade de detectar automaticamente a orientação do texto, mesmo se a imagem foi girada ou inclinada. Isso é essencial para o reconhecimento preciso de texto em uploads de comprovantes e extração de dados, uma vez que os comprovantes geralmente contêm muita informação e podem estar dobrados ou amassados, fazendo com que o texto fique inclinado.

2. Recursos do IronOCR

  • OCR em C# usa Aprendizagem Profunda para escanear e reconhecer textos a partir de imagens, documentos digitalizados e PDFs.
  • OCR .NET suporta mais de 125 idiomas globais.
  • IronOCR pode ler texto de imagens em muitos formatos de arquivo, incluindo PNG, JPG, TIFF e PDF.
  • Texto, dados estruturados, saída em JSON ou PDFs pesquisáveis podem ser produzidos a partir das informações extraídas.
  • IronOCR suporta as versões .NET 5, 6 e 7 (Core, Framework, e Standard).
  • IronOCR divide a entrada em diferentes imagens com base em regiões de texto. Ele usa Visão Computacional para identificar áreas que contêm elementos textuais.

3. Criando um Novo Projeto no Visual Studio

Abra o Visual Studio e vá para o menu Arquivo. Selecione "Novo Projeto" e depois escolha Aplicação de Console.

Insira o nome do projeto e selecione o caminho na caixa de texto apropriada. Em seguida, clique no botão Criar. Selecione o .NET Framework necessário, como mostrado na captura de tela abaixo:

Criando um novo projeto no Visual Studio

A estrutura do projeto para a Aplicação de Console será gerada agora. Uma vez finalizado, ele abrirá o arquivo Program.cs, no qual você pode escrever e executar código-fonte.

O arquivo Program.cs gerado pelo Assistente de Novo Projeto do Visual Studio

4. Instalar IronOCR

No Visual Studio, você pode integrar o IronOCR ao seu projeto C# facilmente. IronOCR oferece várias maneiras de integrar a um projeto C# .NET. Aqui, discutiremos uma delas: Instalando IronOCR usando o Gerenciador de Pacotes NuGet.

No Visual Studio, acesse Ferramentas > Gerenciador de Pacotes NuGet > Console do Gerenciador de Pacotes.

O Console do Gerenciador de Pacotes NuGet do Visual Studio

Um novo console aparecerá na parte inferior da janela do Visual Studio. Digite o comando abaixo no console e pressione enter.

Install-Package IronOcr

IronOCR será instalado em apenas alguns segundos.

5. Extração de Dados de Comprovantes Usando o IronOCR

IronOCR é uma poderosa biblioteca OCR que pode ser usada para extrair e acessar dados detalhados de comprovantes. Com o IronOCR, você pode converter uma imagem de um comprovante em texto legível por máquina que pode ser facilmente analisado e processado sem comprometer a privacidade dos dados.

Aqui está um exemplo de como você pode usar o IronOCR para extrair texto de um comprovante:

using IronOcr;
using System;

class Program
{
    static void Main()
    {
        IronTesseract ocrTesseract = new IronTesseract();

        // Load the receipt image
        using (OcrInput ocrInput = new OcrInput("ocr.png"))
        {
            // Read the OCR result
            OcrResult ocrResult = ocrTesseract.Read(ocrInput);
            string recognizedText = ocrResult.Text;

            // Output the recognized text to the console
            Console.WriteLine(recognizedText);
        }
    }
}
using IronOcr;
using System;

class Program
{
    static void Main()
    {
        IronTesseract ocrTesseract = new IronTesseract();

        // Load the receipt image
        using (OcrInput ocrInput = new OcrInput("ocr.png"))
        {
            // Read the OCR result
            OcrResult ocrResult = ocrTesseract.Read(ocrInput);
            string recognizedText = ocrResult.Text;

            // Output the recognized text to the console
            Console.WriteLine(recognizedText);
        }
    }
}
$vbLabelText   $csharpLabel

Consulte o tutorial de Leitura de Texto de Imagem para mais detalhes sobre como o IronOCR lê texto de imagens usando C#.

A saída do código acima:

- LOGO SHOP
- LOREM IPSUM
- DOLOR SIT AMET CONSECTETUR
- ADIPISCING ELIT
- 1 LOREM IPSUM $3.20
- 2 ORNARE MALESUADA $9.50
- 3 PORTA FERMENTUM $5.90
- 4 SODALES ARCU $6.00
- 5 ELEIFEND $9.00
- 6 SEM NISIMASSA $0.50
- 7 DUIS FAMES DIS $7.60
- 8 FACILISI RISUS $810
- TOTAL AMOUNT $49.80
- CASH $50.00

6. Extração de Dados Específicos a partir de Imagem de Comprovante Usando o IronOCR

IronOCR permite que os desenvolvedores recuperem informações cruciais de comprovantes digitalizados, como valores de impostos e nomes de comerciantes.

Aqui está um exemplo demonstrando como extrair o valor total de um comprovante:

using IronOcr;
using System;

class Program
{
    static void Main()
    {
        IronTesseract ocrTesseract = new IronTesseract();

        // Set the language for OCR
        ocrTesseract.Language = OcrLanguage.English;

        // Load the receipt image
        using (OcrInput ocrInput = new OcrInput("ocr.png"))
        {
            // Optimize the input image for OCR
            ocrInput.DeNoise(true);
            ocrInput.Contrast();
            ocrInput.EnhanceResolution();
            ocrInput.ToGrayScale();

            OcrResult ocrResult = ocrTesseract.Read(ocrInput);

            // Search for the total amount in the OCR result
            var totalAmount = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
            Console.WriteLine("Total Amount: " + totalAmount);
        }
    }
}
using IronOcr;
using System;

class Program
{
    static void Main()
    {
        IronTesseract ocrTesseract = new IronTesseract();

        // Set the language for OCR
        ocrTesseract.Language = OcrLanguage.English;

        // Load the receipt image
        using (OcrInput ocrInput = new OcrInput("ocr.png"))
        {
            // Optimize the input image for OCR
            ocrInput.DeNoise(true);
            ocrInput.Contrast();
            ocrInput.EnhanceResolution();
            ocrInput.ToGrayScale();

            OcrResult ocrResult = ocrTesseract.Read(ocrInput);

            // Search for the total amount in the OCR result
            var totalAmount = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
            Console.WriteLine("Total Amount: " + totalAmount);
        }
    }
}
$vbLabelText   $csharpLabel

Graças às múltiplas configurações fornecidas pela classe OcrInput, é possível otimizar a imagem de entrada para melhor precisão no processo de OCR.

Entrada

A imagem de entrada usada para demonstrar a extração de dados específicos de recibos

Saída

- Total 16.5

7. Leia Códigos de Barras em Recibos

IronOCR pode ser usado para ler códigos de barras em recibos, bem como texto. Para ler códigos de barras em recibos, você precisará usar a classe BarcodeReader em combinação com o método ReadBarCodes.

Aqui está um exemplo de como ler códigos de barras:

using IronOcr;
using System;

class Program
{
    static void Main()
    {
        var ocrTesseract = new IronTesseract();
        ocrTesseract.Configuration.ReadBarCodes = true;

        // Load the receipt image with a barcode
        using (var ocrInput = new OcrInput("b.png"))
        {
            OcrResult ocrResult = ocrTesseract.Read(ocrInput);

            // Output the barcode values to the console
            foreach (var barcode in ocrResult.Barcodes)
            {
                Console.WriteLine(barcode.Value);
            }
        }
    }
}
using IronOcr;
using System;

class Program
{
    static void Main()
    {
        var ocrTesseract = new IronTesseract();
        ocrTesseract.Configuration.ReadBarCodes = true;

        // Load the receipt image with a barcode
        using (var ocrInput = new OcrInput("b.png"))
        {
            OcrResult ocrResult = ocrTesseract.Read(ocrInput);

            // Output the barcode values to the console
            foreach (var barcode in ocrResult.Barcodes)
            {
                Console.WriteLine(barcode.Value);
            }
        }
    }
}
$vbLabelText   $csharpLabel

Imagem de entrada

Entrada para Leitura de Código de Barras

Texto de saída

O resultado do processamento da imagem do código de barras

8. Conclusão

O artigo acima explica o processo de instalação e uso do IronOCR em um projeto C# para extrair dados de recibos, com exemplos de trechos de código fornecidos.

Por favor, leia o tutorial sobre leitura de texto de imagens.

IronOCR é parte da Iron Suite, que inclui cinco diferentes bibliotecas .NET para manipulação de documentos e imagens. Você pode comprar toda a Iron Suite pelo preço de apenas duas licenças IronOCR.

Experimente o IronOCR em seus aplicativos de produção com uma avaliação gratuita.

Perguntas frequentes

Como posso usar o IronOCR para realizar OCR em uma imagem de recibo em C#?

Você pode usar o IronOCR para realizar OCR em uma imagem de recibo, carregando a imagem na classe OcrInput e chamando o método Read para extrair dados de texto, como listas de itens e valores totais.

Quais são as vantagens de usar o IronOCR em vez do Tesseract para processamento de faturas?

O IronOCR oferece maior precisão, suporta mais de 125 idiomas e inclui recursos como detecção automática de orientação de texto e capacidades de aprendizado profundo. Além disso, é mais fácil de integrar com projetos C# usando o Gerenciador de Pacotes NuGet.

Como faço para integrar o IronOCR em um projeto do Visual Studio?

Para integrar o IronOCR em um projeto do Visual Studio, utilize o Gerenciador de Pacotes NuGet. Navegue até Ferramentas > Gerenciador de Pacotes NuGet > Console do Gerenciador de Pacotes e execute Install-Package IronOcr para adicionar a biblioteca ao seu projeto.

O IronOCR consegue lidar com vários idiomas no OCR de recibos?

Sim, o IronOCR é capaz de lidar com vários idiomas, suportando mais de 125 idiomas globais, o que o torna ideal para processar recibos com texto multilíngue.

Como o IronOCR melhora a precisão do reconhecimento de texto em recibos?

O IronOCR aprimora a precisão do reconhecimento de texto por meio de recursos como aprendizado profundo, detecção automática da orientação do texto e a capacidade de otimizar imagens usando a classe OcrInput para obter melhores resultados de OCR.

É possível extrair listas detalhadas de recibos usando o IronOCR?

Sim, o IronOCR pode ser usado para extrair listas detalhadas de recibos, processando os dados de texto e identificando os itens por meio de correspondência de padrões após a execução do OCR.

Como o IronOCR realiza a leitura de códigos de barras em recibos?

O IronOCR realiza a leitura de códigos de barras utilizando a classe BarcodeReader e o método ReadBarCodes para escanear e decodificar os códigos de barras presentes nos recibos.

Quais formatos de arquivo o IronOCR consegue processar para OCR de recibos?

O IronOCR consegue processar diversos formatos de arquivo para OCR de recibos, incluindo PNG, JPG, TIFF e PDF, o que o torna versátil para diferentes tipos de entrada.

Quais são os passos envolvidos na configuração do IronOCR para processamento de faturas em C#?

A configuração do IronOCR para processamento de faturas envolve a instalação da biblioteca via NuGet, a configuração do OcrInput com a imagem do recibo e o uso do método Read para extrair os dados de texto. Você também pode usar os recursos da biblioteca para aumentar a precisão e extrair dados específicos, como totais.

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