Comment lire un chèque MICR en utilisant IronOCR en C#
Le traitement manuel des chèques est lent et sujet aux erreurs. IronOCR rationalise ce flux de travail grâce à un moteur spécialisé qui lit avec précision la ligne MICR (Magnetic Ink Character Recognition), ce qui vous permet d'automatiser l'extraction des numéros de routage, des numéros de compte et d'autres données critiques.
Démarrage rapide : Lire le MICR d'une image de chèqueUtilisez IronOCR pour extraire la ligne MICR rapidement—il suffit de définir le Language sur MICR, spécifier la région rectangulaire où le texte MICR apparaît, exécuter Read(), et obtenir immédiatement la chaîne result.Text. Idéal pour les développeurs qui souhaitent une extraction de données financières fiable avec une configuration minimale.
-
1Install IronOCR with NuGet Package Manager
-
2Copiez et exécutez cet extrait de code.
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;C# -
3Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit
Flux de travail minimal (5 étapes)
- Téléchargez la bibliothèque C# pour la lecture des chèques MICR
- Instancier le moteur OCR
- Réglez la
Languagesur MICR. - Utilisez la méthode
Readpour extraire les données de l'image du chèque d'exemple - Accédez à la propriété OcrResult pour visualiser et manipuler les données extraites.
Comment lire les données MICR d'une image de chèque?
Lire une ligne MICR avec IronOCR est simple et intuitif. Commencez par définir la propriété Language de l'instance IronTesseract sur OcrLanguage.Micr. Pour s'assurer que le moteur lit la bonne zone, spécifiez l'emplacement de la ligne MICR en définissant une limite rectangulaire sur le OcrInput.
Cela est réalisé en sélectionnant les coordonnées x et y, ainsi que la hauteur et la largeur du rectangle de la boîte englobante, puis en passant le rectangle comme second paramètre lors de l'appel de la méthode Load. Appeler la méthode Read permet ensuite de traiter uniquement cette région définie. Cette combinaison du paramètre de langue MICR et d'une région spécifique garantit qu'IronOCR extrait avec précision les informations financières pertinentes.
La technologie MICR utilise une encre magnétique spéciale et une police de caractères unique (E-13B en Amérique du Nord) qui contient exactement 14 caractères : les chiffres de 0 à 9 et quatre symboles spéciaux. Ces symboles comprennent le symbole de transit (⑆), qui marque les limites des numéros de routage ; le symbole on-us (⑈), qui sépare le numéro de compte des autres données ; le symbole du montant (⑊), utilisé pour les montants encodés ; et le symbole du tiret (⑉), qui sert de séparateur. Les propriétés magnétiques de cette encre permettent une lecture fiable même lorsque les chèques sont pliés, estampillés ou légèrement endommagés, ce qui rend le MICR idéal pour le traitement de chèques en grande quantité.
À quoi ressemble un chèque MICR?

Quelles sont les informations contenues dans la ligne MICR?
Numéro de chèque : Ce numéro identifie de manière unique le chèque spécifique figurant dans le chéquier du titulaire du compte. Il sert de référence claire pour le suivi des paiements individuels et la tenue des registres de transactions. Dans les systèmes de traitement automatisés, le numéro de chèque permet d'éviter les doubles traitements et facilite les procédures de rapprochement.
Numéro de routage : Ce code à neuf chiffres, entouré du symbole de transit ⑆, identifie l'établissement financier qui détient le compte. Il s'agit de la première information utilisée par une chambre de compensation pour acheminer le chèque vers la banque compétente pour paiement. Le numéro de routage suit un format spécifique : les quatre premiers chiffres identifient le symbole de routage de la Réserve fédérale, les quatre suivants identifient l'institution et le dernier chiffre est une somme de contrôle pour la validation.
Numéro de compte : Il identifie le compte client spécifique à partir duquel les fonds seront prélevés. La longueur du mot de passe peut varier d'une banque à l'autre, mais elle est généralement comprise entre 10 et 12 chiffres. Les banques peuvent inclure des codes internes ou des identifiants d'agence dans la structure du numéro de compte.
De quel code ai-je besoin pour extraire les données MICR?
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);
}Imports IronOcr
Imports IronSoftware.Drawing
Imports System
' Create a new instance of IronTesseract for performing OCR operations
Dim ocr As 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 input As New OcrInput()
' Specify the MICR of the image to focus on for OCR (coordinates in pixels)
Dim contentArea As 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
Dim 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
Dim transitNum As String = result.Text.Substring(0, 7)
' Routing number starts from the 8th character and is 11 characters long
Dim routingNum As String = result.Text.Substring(7, 11)
' Account number starts from the 22nd character to the end of the string
Dim accountNum As String = result.Text.Substring(22)
End UsingLe code démontre le flux de travail complet pour le traitement des chèques du MICR. Avant d'exécuter ce code, assurez-vous d'avoir installé le pack linguistique MICR via NuGet. La classe OcrInput offre des méthodes puissantes pour charger et prétraiter des images, tandis que le paramètre Rectangle permet un ciblage précis de l'emplacement de la ligne MICR.
Quels sont les résultats auxquels je peux m'attendre ?

La sortie ci-dessus montre les trois sections obtenues à partir du chèque MICR : le numéro de transit, le numéro d'acheminement et le numéro de compte. Remarquez la façon dont les symboles MICR spéciaux sont représentés dans la sortie. Il s'agit d'un comportement normal, car ces symboles ont des représentations Unicode spécifiques qui peuvent apparaître différemment dans la sortie de la console.
Résultats de la reconnaissance optique de caractères (OCR) MICR
L'objet OcrResult fournit des informations détaillées sur le scan :
Texte : Le texte extrait de OcrInput. Cela inclut tous les caractères et symboles de la ligne MICR, en conservant leur séquence d'origine.
Confiance : indique la confiance en la précision statistique d'une moyenne de chaque caractère, un étant la valeur la plus élevée et zéro la plus faible. Pour la lecture MICR, les niveaux de confiance supérieurs à 0,9 sont typiques en raison de la conception normalisée de la police. En savoir plus sur le suivi de la confiance dans les résultats de l'OCR.
Blocs, Paragraphes, Lignes et Mots : La structure hiérarchique du texte reconnu, qui pour le MICR consiste typiquement en une seule ligne avec plusieurs segments de mots séparés par des symboles.
Données BarCode : Lors du traitement des données MICR, IronOCR peut détecter simultanément tout code-barres ou code QR présent sur le chèque.
Comment vérifier que la région d'OCR est correcte ?
Pour vous assurer d'avoir sélectionné les coordonnées correctes pour la ligne MICR, vous pouvez visualiser la zone de contenu que vous avez définie. Une façon simple de faire cela est de dessiner le rectangle sur l'image d'entrée et de l'enregistrer comme un nouveau fichier avec StampCropRectangleAndSaveAs. Cela vous permet de déboguer et d'affiner les coordonnées pour des performances optimales.
Pour trouver les coordonnées de votre Rectangle, utilisez un éditeur d'image simple comme MS Paint. Ouvrez l'image de votre chèque, passez votre souris sur les coins supérieur gauche et inférieur droit de la ligne MICR, et notez les coordonnées de pixels (x,y). Vous pouvez ensuite calculer les propriétés du rectangle : (x1, y1, width, height), où width = x2-x1 et height = y2-y1.
Pour des techniques de sélection de régions plus avancées, consultez ciblage de régions OCR et zones de contenu avec PDF.
Voici l'image résultante après avoir tracé le cadre de délimitation spécifié sur notre chèque d'exemple.
Sortie

Le rectangle bleu clair confirme que nous avons correctement isolé la ligne MICR pour traitement.
Conseils pour l'optimisation des performances
Lorsque vous traitez plusieurs contrôles, pensez à mettre en œuvre le multithreading pour améliorer les performances. IronOCR gère efficacement les opérations simultanées :
// 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);
}
});Imports System.IO
Imports System.Threading.Tasks
Imports IronOcr
' Process multiple cheques in parallel
Dim chequeFiles = Directory.GetFiles("cheques/", "*.png")
Parallel.ForEach(chequeFiles, Sub(file)
Using ocr As New IronTesseract With {.Language = OcrLanguage.MICR}
Using input As New OcrInput()
input.LoadImage(file, micrRegion)
Dim result = ocr.Read(input)
ProcessMicrData(result.Text)
End Using
End Using
End Sub)Scénarios de dépannage courants
Scans de mauvaise qualité : si vous travaillez avec des images de contrôle de mauvaise qualité, appliquez des filtres de prétraitement d'image pour améliorer la lisibilité. La forme distinctive de la police MICR permet de maintenir la précision même avec des images dégradées.
Reconnaissance incorrecte des caractères : Assurez-vous que la dernière version du pack linguistique MICR est installée. La configuration linguistique spécialisée MICR est spécifiquement formée à la reconnaissance des polices E-13B.
Positions variables de la ligne de codage magnétique : Différentes banques peuvent positionner la ligne de codage à l'encre magnétique à des endroits légèrement différents. Envisagez de mettre en œuvre la détection dynamique des régions ou de maintenir un fichier de configuration avec des coordonnées pour différents formats de vérification.
Traitement de documents financiers connexes
Les capacités d'IronOCR vont au-delà du traitement des chèques. Explorez ces fonctionnalités connexes pour une automatisation complète des documents financiers :
- Extraire des données de factures scannées
- Traiter les documents d'identité pour la conformité KYC
- Lire les tableaux dans les états financiers
En maîtrisant la lecture des codes à barres avec IronOcr, vous avez fait le premier pas vers un traitement entièrement automatisé des documents financiers, en réduisant les erreurs de saisie manuelle et en accélérant considérablement votre flux de travail.
Questions Fréquemment Posées
Qu'est-ce que le MICR et pourquoi est-il important pour le traitement des chèques ?
MICR (Magnetic Ink Character Recognition) est une technologie qui utilise une encre magnétique spéciale et des polices de caractères uniques pour coder les informations financières sur les chèques. Le moteur MICR spécialisé d'IronOcr peut lire avec précision ces données codées, y compris les numéros de routage, les numéros de compte et les numéros de chèque, automatisant ainsi ce qui serait autrement un processus manuel lent et sujet aux erreurs.
Comment configurer le moteur OCR pour qu'il lise le texte MICR ?
Pour lire du texte MICR avec IronOcr, vous devez définir la propriété Language de l'instance IronTesseract sur OcrLanguage.MICR. Cela indique au moteur d'utiliser les algorithmes spécialisés de reconnaissance de caractères MICR conçus spécifiquement pour lire la police E-13B utilisée sur les chèques.
Puis-je préciser l'endroit exact du chèque où doivent figurer les données MICR ?
Oui, IronOcr vous permet de spécifier l'emplacement exact de la ligne de codage magnétique en définissant une limite rectangulaire sur l'entrée OcrInput. Vous définissez cela en sélectionnant les coordonnées x et y, ainsi que la hauteur et la largeur du rectangle de délimitation, puis en le transmettant en tant que deuxième paramètre lorsque vous appelez la méthode Load.
Quels sont les caractères spéciaux utilisés dans l'encodage MICR ?
Le MICR utilise 14 caractères au total : les chiffres de 0 à 9 et quatre symboles spéciaux. Ces derniers comprennent le symbole de transit (⑆) pour les limites du numéro de routage, le symbole on-us (⑈) pour séparer les numéros de compte, le symbole de montant (⑊) pour les montants encodés et le symbole du tiret (⑉) comme séparateur. IronOCR peut reconnaître tous ces caractères spécifiques au MICR.
En combien de temps puis-je extraire des données MICR d'une image de chèque ?
Avec IronOCR, vous pouvez extraire des données MICR en une seule ligne de code. Il vous suffit de créer une instance IronTesseract avec le paramètre Language défini sur MICR, de charger votre image avec la région MICR spécifiée, d'appeler Read() et d'accéder à la propriété result.Text pour obtenir immédiatement la chaîne MICR extraite.
Quels types d'informations financières peuvent être extraits de la ligne MICR ?
IronOcr peut extraire toutes les données financières critiques encodées dans la ligne MICR, y compris le numéro de routage (identifiant la banque), le numéro de compte (identifiant le compte spécifique) et le numéro de chèque (identifiant de manière unique le chèque individuel). Cette extraction automatisée rationalise le traitement des documents financiers.
Does IronOCR support multithreading for processing multiple checks?
Yes, IronOCR supports multithreading, allowing you to process multiple checks simultaneously. This feature can significantly improve performance, especially in high-volume environments.
What other financial document processing capabilities does IronOCR offer?
Beyond MICR reading, IronOCR can extract data from scanned invoices, process identity documents for KYC compliance, and read tables in financial statements, providing comprehensive automation for financial documents.
How can I verify the extracted MICR data using IronOCR?
IronOCR provides an `OcrResult` object that includes the extracted text, confidence levels, and additional data like words and lines. You can also visualize the targeted OCR region on the input image to ensure correctness.
What should I do if IronOCR incorrectly recognizes characters in the MICR line?
Ensure that the MICR language pack is up to date and correctly installed. The specialized MICR language configuration in IronOCR is specifically designed for recognizing the E-13B font used in MICR lines.

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.