Como ler um cheque MICR usando o IronOCR em C

This article was translated from English: Does it need improvement?
Translated
View the article in English

O processamento manual de cheques é lento e propenso a erros. O IronOCR simplifica esse fluxo de trabalho com um mecanismo especializado que lê com precisão a linha MICR (Reconhecimento de Caracteres de Tinta Magnética), permitindo automatizar a extração de números de roteamento, números de conta e outros dados críticos.

Início Rápido: OCR: Leia MICR da Imagem do Cheque

Use o IronOCR para capturar a linha MICR rapidamente—basta definir o Language para MICR, especificar a região retangular onde o texto MICR aparece, executar Read() e obter imediatamente a string result.Text. Ideal para desenvolvedores que desejam extrair dados financeiros de forma confiável e com configuração mínima.

  1. Instale IronOCR com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronOcr
  2. Copie e execute este trecho de código.

    string micrText = new IronOcr.IronTesseract { Language = IronOcr.OcrLanguage.MICR }.Read(new IronOcr.OcrInput().LoadImage("micr.png", new System.Drawing.Rectangle(125, 240, 310, 15))).Text;
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronOCR em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Como faço para ler os dados MICR de uma imagem de cheque?

Ler uma linha MICR com IronOCR é simples e intuitivo. Comece definindo a propriedade Language da instância IronTesseract para OcrLanguage.Micr. Para garantir que o motor leia a área correta, especifique a localização da linha MICR definindo um limite retangular no OcrInput.

Isso é alcançado selecionando as coordenadas x e y, assim como a altura e a largura do retângulo da caixa delimitadora, em seguida passando o retângulo como o segundo parâmetro ao chamar o método Load. Chamar o método Read então processa apenas essa região definida. Essa combinação da configuração de idioma MICR e de uma região específica garante que o IronOCR extraia com precisão as informações financeiras relevantes.

A tecnologia MICR utiliza tinta magnética especial e uma fonte exclusiva (E-13B na América do Norte) que contém exatamente 14 caracteres: os dígitos de 0 a 9 e quatro símbolos especiais. Esses símbolos incluem o símbolo de trânsito (⑆), que marca os limites do número de rota; o símbolo on-us (⑈), que separa o número da conta de outros dados; o símbolo de valor (⑊), usado para valores codificados; e o símbolo de hífen (⑉), que serve como separador. As propriedades magnéticas dessa tinta permitem uma leitura confiável mesmo quando os cheques estão dobrados, carimbados ou ligeiramente danificados, tornando o MICR ideal para o processamento de grandes volumes de cheques.

Qual a aparência de um cheque MICR?

Exemplo de cheque mostrando linha MICR com número de roteamento, número de conta e número do cheque rotulados para a demonstração de leitura MICR

Que informações a linha MICR contém?

Número do cheque : Este número identifica exclusivamente o cheque específico no talão de cheques do titular da conta. Serve como uma referência clara para rastrear pagamentos individuais e manter registros de transações. Em sistemas de processamento automatizado, o número do cheque ajuda a evitar o processamento duplicado e auxilia nos procedimentos de conciliação.

Número de roteamento : Este código de nove dígitos, delimitado pelo símbolo de trânsito ⑆, identifica a instituição financeira que detém a conta. É a primeira informação que uma câmara de compensação utiliza para direcionar o cheque ao banco correto para pagamento. O número de roteamento segue um formato específico: os quatro primeiros dígitos identificam o símbolo de roteamento do Federal Reserve, os quatro seguintes identificam a instituição e o dígito final é um dígito verificador para validação.

Número da conta : Este número identifica a conta específica do cliente da qual os fundos serão debitados. Seu comprimento pode variar entre diferentes bancos, normalmente variando de 10 a 12 dígitos. Os bancos podem incluir códigos internos ou identificadores de agência na estrutura do número da conta.

Que código preciso para extrair dados MICR?

:path=/static-assets/ocr/content-code-examples/how-to/read-micr-cheque.cs
using IronOcr;
using IronSoftware.Drawing;
using System;

// Create a new instance of IronTesseract for performing OCR operations
IronTesseract ocr = new IronTesseract();

// Set the OCR language to MICR to recognize magnetic ink characters
// Must have MICR (IronOcr.Languages.MICR) installed beforehand
ocr.Language = OcrLanguage.MICR;

// Specify the file path of the input image containing MICR text
using (var input = new OcrInput())
{
    // Specify the MICR of the image to focus on for OCR (coordinates in pixels)
    var contentArea = new Rectangle(x: 215, y: 482, width: 520, height: 20);
    input.LoadImage("micr.png", contentArea);

    // Optional: Save the cropped area for verification
    input.StampCropRectangleAndSaveAs(contentArea, Color.Aqua, "cropped.png");

    // Run the OCR engine to read the MICR text from the input image
    var result = ocr.Read(input);
    // Output the recognized text to the console
    Console.WriteLine(result.Text);

    // Transit number is the first 7 characters of the MICR string
    string transitNum = result.Text.Substring(0, 7);
    // Routing number starts from the 8th character and is 11 characters long
    string routingNum = result.Text.Substring(7, 11);
    // Account number starts from the 22nd character to the end of the string
    string accountNum = result.Text.Substring(22);
}
$vbLabelText   $csharpLabel

O código demonstra o fluxo de trabalho completo para o processamento de cheques MICR . Antes de executar este código, certifique-se de ter instalado o pacote de idiomas MICR via NuGet. A classe OcrInput fornece métodos poderosos para carregar e pré-processar imagens, enquanto o parâmetro Rectangle permite o direcionamento preciso da localização da linha MICR.

Que resultados posso esperar?

Console de depuração mostrando os resultados da análise MICR com os números de trânsito, roteamento e conta extraídos do cheque.

O resultado acima mostra as três seções obtidas do cheque MICR: o número de trânsito, o número de roteamento e o número da conta. Observe como os símbolos MICR especiais são representados na saída — esse é o comportamento normal, pois esses símbolos têm representações Unicode específicas que podem aparecer de forma diferente na saída do console.

Resultados do OCR MICR

O objeto OcrResult fornece informações detalhadas sobre a digitalização:

Texto: O texto extraído de OcrInput. Isso inclui todos os caracteres e símbolos da linha MICR, mantendo sua sequência original.

Confiança : Indica a confiança na precisão estatística da média de cada caractere, sendo um o valor mais alto e zero o mais baixo. Para leitura MICR, níveis de confiança acima de 0,9 são típicos devido ao design padronizado da fonte. Saiba mais sobre o rastreamento de confiança nos resultados de OCR .

Blocos, parágrafos, linhas e palavras : a estrutura hierárquica do texto reconhecido, que para MICR normalmente consiste em uma única linha com vários segmentos de palavras separados por símbolos.

Dados de código de barras : Durante o processamento MICR, o IronOCR pode detectar simultaneamente quaisquer códigos de barras ou códigos QR presentes no cheque.

Como posso verificar se a região OCR está correta?

Para garantir que você selecionou as coordenadas corretas para a linha MICR, você pode visualizar a ContentArea que definiu. Uma maneira simples de fazer isso é desenhar o retângulo na imagem de entrada e salvá-lo como um novo arquivo com StampCropRectangleAndSaveAs. Isso ajuda você a depurar e ajustar as coordenadas para obter o desempenho ideal.

Para encontrar as coordenadas do seu retângulo, use um editor de imagens simples como o MS Paint. Abra a imagem do seu cheque, passe o mouse sobre os cantos superior esquerdo e inferior direito da linha MICR e anote as coordenadas de pixel (x,y). Você pode então calcular as propriedades do retângulo: (x1, y1, width, height), onde width = x2-x1 e height = y2-y1.

Para técnicas mais avançadas de seleção de região, explore o direcionamento de região por OCR e áreas de conteúdo com PDFs .

Aqui está a imagem resultante após desenhar a caixa delimitadora especificada em nosso cheque de exemplo.

Saída

Verifique a linha MICR que mostra o número de roteamento, o número da conta e o número do cheque destacados em vermelho.

O retângulo azul claro confirma que isolamos corretamente a linha MICR para processamento.

Dicas de Otimização de Desempenho

Ao processar várias verificações, considere implementar multithreading para melhorar o desempenho . O IronOCR lida com operações simultâneas de forma eficiente:

// Process multiple cheques in parallel
var chequeFiles = Directory.GetFiles("cheques/", "*.png");
Parallel.ForEach(chequeFiles, file =>
{
    using (var ocr = new IronTesseract { Language = OcrLanguage.MICR })
    using (var input = new OcrInput())
    {
        input.LoadImage(file, micrRegion);
        var result = ocr.Read(input);
        ProcessMicrData(result.Text);
    }
});
// Process multiple cheques in parallel
var chequeFiles = Directory.GetFiles("cheques/", "*.png");
Parallel.ForEach(chequeFiles, file =>
{
    using (var ocr = new IronTesseract { Language = OcrLanguage.MICR })
    using (var input = new OcrInput())
    {
        input.LoadImage(file, micrRegion);
        var result = ocr.Read(input);
        ProcessMicrData(result.Text);
    }
});
$vbLabelText   $csharpLabel

Cenários comuns de resolução de problemas

Digitalizações de baixa qualidade : Se estiver trabalhando com imagens de baixa qualidade, aplique filtros de pré-processamento de imagem para melhorar a legibilidade. O formato característico da fonte MICR ajuda a manter a precisão mesmo com imagens degradadas.

Reconhecimento de caracteres incorreto : Certifique-se de ter o pacote de idiomas MICR mais recente instalado. A configuração especializada da linguagem MICR é treinada especificamente para o reconhecimento da fonte E-13B.

Posicionamento variável da linha MICR : Diferentes bancos podem posicionar a linha MICR em locais ligeiramente diferentes. Considere implementar a detecção dinâmica de regiões ou manter um arquivo de configuração com coordenadas para diferentes formatos de verificação.

Processamento de Documentos Financeiros Relacionados

As funcionalidades do IronOCR vão além do processamento de cheques. Explore estes recursos relacionados para uma automação completa de documentos financeiros:

Ao dominar a leitura de MICR com o IronOCR, você deu o primeiro passo rumo ao processamento totalmente automatizado de documentos financeiros, reduzindo erros de entrada manual e acelerando significativamente seu fluxo de trabalho.

Perguntas frequentes

O que é MICR e por que é importante para o processamento de cheques?

MICR (Reconhecimento de Caracteres por Tinta Magnética) é uma tecnologia que utiliza tinta magnética especial e fontes exclusivas para codificar informações financeiras em cheques. O mecanismo MICR especializado da IronOCR consegue ler com precisão esses dados codificados, incluindo números de roteamento, números de conta e números de cheques, automatizando um processo que, de outra forma, seria lento e sujeito a erros.

Como configuro o mecanismo de OCR para ler texto MICR?

Para ler texto MICR com o IronOCR, você precisa definir a propriedade Language da instância IronTesseract como OcrLanguage.MICR. Isso instrui o mecanismo a usar os algoritmos especializados de reconhecimento de caracteres MICR, projetados especificamente para a leitura da fonte E-13B usada em cheques.

Posso especificar exatamente em que parte do cheque devo procurar os dados MICR?

Sim, o IronOCR permite especificar a localização exata da linha MICR definindo um limite retangular no OcrInput. Você define isso selecionando as coordenadas x e y, juntamente com a altura e a largura do retângulo delimitador, e passando-o como segundo parâmetro ao chamar o método Load.

Quais caracteres especiais são usados na codificação MICR?

O MICR utiliza um total de 14 caracteres: dígitos de 0 a 9 e quatro símbolos especiais. Estes incluem o símbolo de trânsito (⑆) para delimitar números de roteamento, o símbolo on-us (⑈) para separar números de conta, o símbolo de valor (⑊) para valores codificados e o hífen (⑉) como separador. O IronOCR consegue reconhecer todos esses caracteres específicos do MICR.

Com que rapidez posso extrair dados MICR de uma imagem de cheque?

Com o IronOCR, você pode extrair dados MICR com apenas uma linha de código. Basta criar uma instância do IronTesseract com o idioma definido como MICR, carregar sua imagem com a região MICR especificada, chamar o método Read() e acessar a propriedade result.Text para obter a string MICR extraída imediatamente.

Que tipos de informações financeiras podem ser extraídas da linha MICR?

O IronOCR consegue extrair todos os dados financeiros críticos codificados na linha MICR, incluindo o número de roteamento (que identifica o banco), o número da conta (que identifica a conta específica) e o número do cheque (que identifica exclusivamente o cheque individual). Essa extração automatizada agiliza o processamento de documentos financeiros.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 5,525,971 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronOcr
executar um exemplo Veja sua imagem se transformar em texto pesquisável.