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

Como extrair dados de recibos usando OCR em C#

IronOCR fornece uma poderosa biblioteca C# para extrair texto de imagens de recibos usando tecnologia OCR avançada, permitindo o rastreamento automatizado de despesas e análise de dados com suporte para 125 idiomas e pré-processamento de imagem embutido.

Recibos e Automação

Recibos são essenciais no mundo acelerado de hoje. Seja comprando mantimentos ou jantando fora, os recibos ajudam a rastrear gastos e auxiliam no orçamento. Enquanto isso, as lojas usam scanners de recibos para analisar dados de vendas, ajudando-os a prever a demanda e gerenciar o inventário através de técnicas de extração de dados.

No entanto, os recibos podem ser difíceis de ler e os cálculos nem sempre são claros. A entrada manual de dados para orçamento é tediosa e propensa a erros, especialmente com muitos itens. Perder um recibo pode de repente tornar seus gastos excessivos mensais um mistério. Recibos tradicionais de papel frequentemente têm qualidade de impressão ruim, tinta desbotada e degradação do papel térmico, tornando a otimização de imagem OCR crucial para extração precisa.

Para resolver isso, aplicativos de orçamento e financeiros adotaram a tecnologia OCR (Reconhecimento Óptico de Caracteres). Ao digitalizar recibos em formato digital, o OCR minimiza erros, automatiza a entrada de dados, rastreia despesas e revela padrões de compra. Soluções modernas de OCR lidam com vários formatos de recibos, de impressões tradicionais do ponto de venda a recibos digitais com capacidade de leitura de código de barras e QR code.

OCR usa aprendizado de máquina para identificar e extrair texto de imagens. O processo inclui pré-processamento de imagem, segmentação de caracteres, reconhecimento de padrões e validação. No entanto, o OCR não é perfeito—desfoque ou manchas podem levar a erros. Sistemas avançados utilizam técnicas de visão computacional para aumentar a precisão. Escolher uma biblioteca OCR confiável que processe e otimize a leitura de forma eficiente é crucial para a automação bem-sucedida de documentos.

Por que Devo Escolher o IronOCR para Processamento de Recibos?

IronOCR é uma biblioteca C# construída sobre um mecanismo OCR Tesseract personalizado. Ao contrário do Tesseract padrão, o IronOCR inclui otimizações do Tesseract 5 e recursos projetados especificamente para desenvolvedores .NET. Aqui está o que o destaca:

  1. Compatibilidade Cruzada: Funciona com .NET 8, 7, 6, 5, e Framework 4.6.2+. Funciona no Windows, macOS, Azure, e Linux. Implanta-se perfeitamente no Docker, AWS Lambda, e Azure Functions.

  2. Flexibilidade e Escalabilidade: Lida com formatos JPG, PNG e GIF. Integra-se com objetos System.Drawing. Processa TIFFs de múltiplas páginas e fluxos de PDFs. Suporta multithreading para cenários de alto volume.

  3. Facilidade de Uso e Suporte: Bem documentado com API robusta e suporte 24/5. Oferece operações simples de uma linha e opções de configuração detalhadas. Inclui guias abrangentes de solução de problemas.

  4. Capacidades Multilíngues: Suporta 125 idiomas internacionais. Reconhece efetivamente nomes de produtos e preços. Lida com múltiplos idiomas por documento. Suporta arquivos traineddata personalizados.

  5. Processamento Avançado de Imagens: Filtros embutidos melhoram automaticamente a qualidade do recibo. Inclui redução de ruído, correção de orientação e otimização de DPI. Assistente de Filtro determina as configurações ideais automaticamente.

Como Implemento OCR de Recibos no Meu Aplicativo?

Qual Licença Eu Preciso para Começar?

Antes de usar o IronOCR, você precisará de uma chave de licença. Obtenha uma versão de teste gratuita aqui. As opções de licenciamento incluem níveis Lite, Plus e Professional para diferentes tamanhos de equipes e implantações. Veja a documentação para aplicação de chaves de licença.

// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
$vbLabelText   $csharpLabel

Para aplicativos web, defina a chave de licença em Web.config para uma configuração centralizada. O sistema de licenciamento suporta extensões e upgrades à medida que você cresce.

Como Posso Ler um Recibo de Supermercado com o IronOCR?

Vamos explorar o uso do IronOCR em um aplicativo que escaneia recibos de supermercado com smartphones, extraindo nomes de produtos e preços para premiar pontos de fidelidade com base nas compras. Isso envolve captura de imagem, pré-processamento, execução de OCR e validação de dados usando pontuações de confiança dos resultados.

Como é a Aparência de uma Imagem de Recibo Típica?

Sample supermarket receipt showing Lorem ipsum placeholder text with items, prices, subtotal of $107.60, and payment details - demonstrating typical receipt layout with header, item list, totals, and barcode

Desafios comuns em recibos incluem qualidade de papel térmico, fontes variadas, layouts lotados e danos por dobra ou umidade. O pré-processamento do IronOCR lida com isso através de correção de qualidade de imagem e técnicas de correção de cor.

Que Código C# Eu Preciso para Extrair Dados do Recibo?

using IronOcr;

class ReceiptScanner
{
    static void Main()
    {
        // Set the license key for IronOCR
        IronOcr.License.LicenseKey = "YOUR-KEY";

        // Instantiate OCR engine with optimal settings for receipts
        var ocr = new IronTesseract();

        // Configure for receipt-specific text
        ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.$,- ";
        ocr.Configuration.BlackListCharacters = "~`@#%^*_+={}[]|\\:;\"'<>?";

        using var inputPhoto = new OcrInput();
        inputPhoto.LoadImage("supermarketexample.jpg");

        // Apply preprocessing for better accuracy
        inputPhoto.DeNoise();
        inputPhoto.ToGrayScale();
        inputPhoto.Contrast(1.2);

        // Perform OCR on the loaded image
        OcrResult result = ocr.Read(inputPhoto);

        // Output the text extracted from the receipt
        string text = result.Text;
        Console.WriteLine(text);

        // Extract specific data using OcrResult features
        foreach (var line in result.Lines)
        {
            if (line.Text.Contains("TOTAL"))
            {
                Console.WriteLine($"Total Found: {line.Text}");
            }
        }
    }
}
using IronOcr;

class ReceiptScanner
{
    static void Main()
    {
        // Set the license key for IronOCR
        IronOcr.License.LicenseKey = "YOUR-KEY";

        // Instantiate OCR engine with optimal settings for receipts
        var ocr = new IronTesseract();

        // Configure for receipt-specific text
        ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.$,- ";
        ocr.Configuration.BlackListCharacters = "~`@#%^*_+={}[]|\\:;\"'<>?";

        using var inputPhoto = new OcrInput();
        inputPhoto.LoadImage("supermarketexample.jpg");

        // Apply preprocessing for better accuracy
        inputPhoto.DeNoise();
        inputPhoto.ToGrayScale();
        inputPhoto.Contrast(1.2);

        // Perform OCR on the loaded image
        OcrResult result = ocr.Read(inputPhoto);

        // Output the text extracted from the receipt
        string text = result.Text;
        Console.WriteLine(text);

        // Extract specific data using OcrResult features
        foreach (var line in result.Lines)
        {
            if (line.Text.Contains("TOTAL"))
            {
                Console.WriteLine($"Total Found: {line.Text}");
            }
        }
    }
}
$vbLabelText   $csharpLabel

O código demonstra:

  1. Importe a biblioteca IronOcr.
  2. Instanciar o motor OCR (IronTesseract) com opções de configuração.
  3. Crie um novo OcrInput para carregar a imagem do recibo.
  4. Aplique pré-processamento para melhor precisão.
  5. Use o método Read para extrair texto.
  6. Processe resultados usando a classe OcrResult para dados estruturados.

Para diferentes formatos de recibo, o IronOCR suporta leitura de fotos, capturas de tela e documentos digitalizados. Também pode extrair dados de tabelas de recibos estruturados.

Como Posso Verificar a Precisão dos Dados Extraídos?

Para garantir consistência, verifique o nível de confiança dos dados extraídos. O IronOCR fornece métricas abrangentes de confiança em múltiplos níveis:

OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine($"Overall Confidence: {result.Confidence}%");

// Check confidence for individual elements
foreach (var word in result.Words)
{
    if (word.Confidence < 80)
    {
        Console.WriteLine($"Low confidence word: '{word.Text}' ({word.Confidence}%)");
    }
}

// Validate numeric values
foreach (var block in result.Blocks)
{
    if (block.Text.Contains("$"))
    {
        Console.WriteLine($"Price detected: {block.Text} (Confidence: {block.Confidence}%)");
    }
}
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine($"Overall Confidence: {result.Confidence}%");

// Check confidence for individual elements
foreach (var word in result.Words)
{
    if (word.Confidence < 80)
    {
        Console.WriteLine($"Low confidence word: '{word.Text}' ({word.Confidence}%)");
    }
}

// Validate numeric values
foreach (var block in result.Blocks)
{
    if (block.Text.Contains("$"))
    {
        Console.WriteLine($"Price detected: {block.Text} (Confidence: {block.Confidence}%)");
    }
}
$vbLabelText   $csharpLabel

A propriedade Confidence mede a precisão estatística de 0 (baixa) a 100 (alta). Use esses níveis de confiança para determinar como lidar com os dados. Para sistemas de produção, implemente rastreamento de progresso para monitorar operações de OCR.

Como Melhorar a Precisão do OCR com Pré-processamento de Imagem?

Antes de processar, use esses métodos para preparar imagens para melhores resultados:

using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("receipt.jpg");

// Basic preprocessing
inputPhoto.DeNoise();           // Removes noise from the image
inputPhoto.ToGrayScale();       // Converts image to grayscale
inputPhoto.Contrast(1.5);       // Enhance contrast for faded receipts
inputPhoto.Sharpen();           // Improve text clarity

// Advanced preprocessing for challenging receipts
inputPhoto.Rotate(2.5);         // Correct slight rotation
inputPhoto.Deskew();            // Automatically straighten receipt
inputPhoto.Scale(200);          // Upscale low-resolution images

// Handle specific receipt issues
if (receiptIsDamaged)
{
    inputPhoto.Dilate();        // Thicken thin text
    inputPhoto.Erode();         // Reduce text bleeding
}

// For colored or patterned backgrounds
inputPhoto.Binarize();          // Convert to pure black and white
inputPhoto.Invert();            // Handle white text on dark background
using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("receipt.jpg");

// Basic preprocessing
inputPhoto.DeNoise();           // Removes noise from the image
inputPhoto.ToGrayScale();       // Converts image to grayscale
inputPhoto.Contrast(1.5);       // Enhance contrast for faded receipts
inputPhoto.Sharpen();           // Improve text clarity

// Advanced preprocessing for challenging receipts
inputPhoto.Rotate(2.5);         // Correct slight rotation
inputPhoto.Deskew();            // Automatically straighten receipt
inputPhoto.Scale(200);          // Upscale low-resolution images

// Handle specific receipt issues
if (receiptIsDamaged)
{
    inputPhoto.Dilate();        // Thicken thin text
    inputPhoto.Erode();         // Reduce text bleeding
}

// For colored or patterned backgrounds
inputPhoto.Binarize();          // Convert to pure black and white
inputPhoto.Invert();            // Handle white text on dark background
$vbLabelText   $csharpLabel

Essas etapas de pré-processamento aumentam a precisão da extração. O Assistente de Filtro automaticamente encontra a melhor combinação de filtros para seus recibos. Para recibos com fundos coloridos, a correção de cor é essencial.

Cenários avançados podem precisar de OCR específico por região para focar em totais ou informações fiscais. Para recibos com códigos de barras, habilite a leitura de códigos de barras junto com a extração de texto.

Quais São os Principais Benefícios de Usar o IronOCR para Processar Recibos?

IronOCR licensing page showing three pricing tiers (Lite $749, Plus $1,499, Professional $2,999) with a toggle between IronOCR and Iron Suite options, displaying Professional license details and total cost of $5,998 - flexible pricing options for teams and enterprises with individual product licensing and Iron Suite bundle for better value

A tecnologia OCR de recibos ajuda empresas e indivíduos com orçamento, prevenção de fraude e coleta automatizada de dados. O IronOCR oferece precisão, velocidade e fácil integração com plataformas existentes, tornando-o ideal para soluções de digitalização de recibos.

Os principais benefícios incluem:

  1. Otimização de Desempenho: Multithreading e ajuste de velocidade para processar milhares de recibos de forma eficiente.

  2. Flexibilidade de Exportação: Converta recibos em PDFs pesquisáveis ou hOCR HTML para integração web.

  3. Recursos Empresariais: Implante em Azure, Docker e servidores Linux para escalabilidade.

  4. Reconhecimento Especializado: Leia notas manuscritas em recibos e extraia estruturas de tabelas.

  5. Ferramentas de Depuração: Visualização de texto em destaque e recursos de exportação de resultados ajudam na solução de problemas.

Experimente a licença de teste do IronOCR para explorar suas capacidades. A documentação completa e exemplos de código ajudam você a implementar OCR de recibos rapidamente.

Perguntas frequentes

Como a tecnologia OCR pode ser usada para automatizar o processamento de recibos de supermercado?

A tecnologia OCR pode automatizar o processamento de recibos de supermercado, convertendo recibos digitalizados em dados digitais. Usando o IronOCR, os recibos podem ser lidos e o texto extraído automaticamente, reduzindo a necessidade de entrada manual de dados e minimizando erros humanos.

Quais as vantagens que o IronOCR oferece para o processamento de recibos de supermercado?

O IronOCR oferece diversas vantagens para o processamento de recibos de supermercado, incluindo compatibilidade multiplataforma, suporte a múltiplos formatos de imagem, uma API robusta para fácil integração e a capacidade de processar até 125 idiomas, tornando-o ideal para recibos internacionais.

Como integrar o IronOCR em um aplicativo C# para ler recibos de supermercado?

Para integrar o IronOCR em um aplicativo C#, você precisa obter uma chave de licença, importar a biblioteca IronOcr e usar o mecanismo IronTesseract para ler e extrair texto de imagens de recibos de supermercado.

Quais técnicas de pré-processamento melhoram a precisão do OCR na digitalização de recibos?

O IronOCR oferece técnicas de pré-processamento, como DeNoise e ToGrayScale para melhorar a precisão do OCR. Essas técnicas ajudam a remover ruídos da imagem e a convertê-la para escala de cinza, aprimorando a extração de texto de recibos.

Por que o teste de confiança é importante no OCR e como ele é aplicado?

O teste de confiança no IronOCR é importante porque mede a precisão dos dados extraídos, com valores que variam de 0 (baixo) a 1 (alto). Ele ajuda os usuários a avaliar a confiabilidade dos resultados do OCR e a tomar decisões sobre o tratamento dos dados.

O IronOCR consegue lidar com recibos de supermercado multilíngues?

Sim, o IronOCR suporta processamento OCR em até 125 idiomas, o que o torna capaz de lidar com recibos de supermercado multilíngues de forma eficiente.

Existe uma versão de avaliação disponível para desenvolvedores interessados no IronOCR?

Sim, existe um período de teste gratuito do IronOCR para desenvolvedores, permitindo que eles explorem seus recursos e funcionalidades antes de efetuar a compra.

Quais plataformas são suportadas pelo IronOCR para digitalização de recibos?

O IronOCR é compatível com plataformas .NET, incluindo .NET 8, 7, 6, 5 e Framework 4.6.2 em diante, e suporta operação em ambientes Windows, macOS, Azure e Linux.

O que torna o IronOCR adequado para integrar a digitalização de recibos em aplicativos?

O IronOCR é ideal para integrar a digitalização de recibos em aplicativos devido à sua alta precisão, facilidade de uso, suporte multiplataforma e capacidade de lidar perfeitamente com diversos formatos de entrada e idiomas.

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