UTILISATION DE L'IRONOCR

Comment obtenir du texte à partir d'une facture en C# Tutoriel

Kannaopat Udonpant
Kannapat Udonpant
février 23, 2023
Mise à jour décembre 18, 2023
Partager:

1. IronOCR, une API de reconnaissance optique de caractères

IronOCR est une bibliothèque OCR qui peut être utilisée pour reconnaître les données textuelles à partir d'images pour l'extraction d'informations, y compris l'OCR des reçus. Il est basé sur le moteur d'OCR Tesseract, qui est considéré comme l'un des moteurs d'OCR les plus précis disponibles à ce jour pour la reconnaissance des reçus. IronOCR peut être utilisé pour lire du texte contenant des informations clés à partir de différents types de documents, notamment PNG, JPG, TIFF, format JSON et PDF, et peut reconnaître du texte dans plusieurs langues.

L'une des fonctionnalités ou services clés d'IronOCR qui le rend particulièrement utile pour la reconnaissance optique de caractères sur les reçus est sa capacité à détecter automatiquement l'orientation du texte, même si l'image a été tournée ou inclinée. Ceci est essentiel pour une reconnaissance précise du texte sur les reçus et pour l'extraction de données, car les reçus contiennent souvent beaucoup d'informations et peuvent être pliés ou froissés, ce qui entraîne une distorsion du texte.

2. Caractéristiques de l'IronOCR

  • L'OCR C# utilise l'apprentissage profond pour numériser et reconnaître des textes à partir d'images, de documents numérisés et de PDF.
  • .NET OCR prend en charge plus de 127 langues internationales.
  • IronOCR peut lire du texte à partir d'images dans de nombreux formats de fichiers, notamment PNG, JPG, TIFF et PDF.
  • Du texte, des données structurées, une sortie JSON, ou des PDF consultables peuvent être produits à partir des informations extraites.
  • IronOCR prend en charge .NET 5, 6 et 7 (Core, Framework et Standard).
  • IronOCR divise l'entrée en différentes images sur la base des régions de texte. Il utilise la vision par ordinateur pour identifier les zones contenant des éléments textuels.

3. Création d'un nouveau projet dans Visual Studio

Ouvrez le logiciel Visual Studio et allez dans le menu Fichier. Sélectionnez "Nouveau projet", puis sélectionnez "Application console".

Saisissez le nom du projet et sélectionnez le chemin d'accès dans la zone de texte appropriée. Cliquez ensuite sur le bouton Créer. Sélectionnez le Framework .NET requis, comme dans la capture d'écran ci-dessous :

Comment obtenir du texte à partir d'une facture dans le tutoriel C#, Figure 1 : Création d'un nouveau projet dans Visual Studio

Créer un nouveau projet dans Visual Studio

Le projet Visual Studio va maintenant générer la structure de l'application console. Une fois terminé, il ouvrira le fichier Program.cs, dans lequel vous pourrez écrire et exécuter du code source.

Comment obtenir du texte à partir d'une facture en C# Tutoriel, Figure 2 : Le fichier program.cs généré par l'assistant de nouveau projet de Visual Studio

Le fichier program.cs généré à partir de l'assistant Nouveau projet de Visual Studio

4. Installer IronOCR

Dans Visual Studio, vous pouvez facilement intégrer IronOCR à votre projet C#. IronOCR offre plusieurs possibilités d'intégration à un projet C# .NET. Ici, nous allons discuter de l'une d'entre elles : l'installation d'IronOCR à l'aide du gestionnaire de paquets NuGet.

Dans Visual Studio, allez à Outils > Gestionnaire de packages NuGet > Console du gestionnaire de packages

Comment extraire du texte d'une facture en C# Tutoriel, Figure 3 : La console du gestionnaire de packages NuGet de Visual Studio

La console du gestionnaire de packages NuGet de Visual Studio

Après avoir cliqué, une nouvelle console apparaît en bas de la fenêtre de Visual Studio. Tapez la commande ci-dessous dans la console et appuyez sur Entrée.

Install-Package IronOcr

IronOCR s'installera en quelques secondes.

5. Extraction de données à partir de reçus à l'aide d'IronOCR

IronOCR est une bibliothèque OCR puissante qui peut être utilisée pour extraire et accéder à des données avec des détails à partir de reçus. Avec IronOCR, vous pouvez prendre une photo d'un reçu et la convertir en texte lisible par une machine qui peut être facilement analysé et traité sans compromettre la confidentialité des données.

Voici un exemple d'utilisation d'IronOCR pour extraire du texte d'un reçu et montrer comment fonctionne l'OCR de reçus.

using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    OcrResult ocrResult = ocrTesseract.Read(ocrInput);
    string RecognizedText = ocrResult.Text;

    Console.WriteLine(RecognizedText);
}
using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    OcrResult ocrResult = ocrTesseract.Read(ocrInput);
    string RecognizedText = ocrResult.Text;

    Console.WriteLine(RecognizedText);
}
Imports IronOcr
Imports System

Private ocrTesseract As New IronTesseract()

Using ocrInput As New OcrInput("ocr.png")
	Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
	Dim RecognizedText As String = ocrResult.Text

	Console.WriteLine(RecognizedText)
End Using
$vbLabelText   $csharpLabel

Veuillez vous référer au tutoriel Lecture de texte à partir d'une image pour plus de détails sur la façon dont IronOCR lit le texte à partir d'images en utilisant le langage informatique C#.

Le résultat du code présenté ci-dessus est le suivant :

- LOGO SHOP
- LOREM IPSUM
- DOLOR SITAMET 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 SEMNISIMASSA $0.50
- 7 DUIS FAMES DIS $7.60
- 8 FACILISIRISUS $810
- TOTAL AMOUNT $49.80
- CASH $50.00

6. Extraction de données spécifiques à partir d'une image de reçu à l'aide d'IronOCR

En tant que puissante bibliothèque OCR, IronOCR permet aux développeurs d'obtenir des informations importantes à partir de reçus scannés, notamment le montant de la taxe et le nom du commerçant.

Voici un exemple d'utilisation d'IronOCR pour extraire la valeur du montant total d'une image de reçu :

using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.English;

// Code line to 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 price in the OCR result
    var totalPrice = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
    Console.WriteLine("Total Price: " + totalPrice);
}
using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.English;

// Code line to 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 price in the OCR result
    var totalPrice = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
    Console.WriteLine("Total Price: " + totalPrice);
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System

Private ocrTesseract As New IronTesseract()

ocrTesseract.Language = OcrLanguage.English

' Code line to load the receipt image
Using ocrInput As New OcrInput("ocr.png")
	' Optimize the input image for OCR
	ocrInput.DeNoise(True)
	ocrInput.Contrast()
	ocrInput.EnhanceResolution()
	ocrInput.ToGrayScale()

	Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)

	' Search for the total price in the OCR result
	Dim totalPrice = If(ocrResult.Text.Contains("Total:"), ocrResult.Text.Split("Total:")(1).Split(vbLf)(0), "")
	Console.WriteLine("Total Price: " & totalPrice)
End Using
$vbLabelText   $csharpLabel

Grâce aux nombreux réglages offerts par la classe OcrInput, il est possible d'optimiser l'image d'entrée pour une meilleure précision dans le processus de reconnaissance optique de caractères (OCR).

Entrée

Comment extraire du texte d'une facture en C# Tutoriel, Figure 4 : L'image d'entrée utilisée pour démontrer l'extraction de données spécifiques à partir de reçus

L'image d'entrée utilisée pour démontrer l'extraction de données spécifiques à partir des reçus

Sortie

- Total 16.5

7. Lire les codes-barres sur les reçus

IronOCR peut être utilisé pour lire les codes-barres sur les reçus ainsi que du texte. Pour lire les codes-barres sur les reçus à l'aide d'IronOCR, vous devrez utiliser la classe BarcodeReader en combinaison avec la méthode ReadBarCodes.

Voici un exemple d'utilisation d'IronOCR pour lire des codes-barres sur l'image d'un reçu.

using IronOcr;
using System;

var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using (var ocrInput = new OcrInput("b.png"))
{
    var ocrResult = ocrTesseract.Read(ocrInput);
    foreach (var barcode in ocrResult.Barcodes)
    {
        Console.WriteLine(barcode.Value);
    }
}
using IronOcr;
using System;

var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using (var ocrInput = new OcrInput("b.png"))
{
    var ocrResult = ocrTesseract.Read(ocrInput);
    foreach (var barcode in ocrResult.Barcodes)
    {
        Console.WriteLine(barcode.Value);
    }
}
Imports IronOcr
Imports System

Private ocrTesseract = New IronTesseract()
ocrTesseract.Configuration.ReadBarCodes = True
Using ocrInput As New OcrInput("b.png")
	Dim ocrResult = ocrTesseract.Read(ocrInput)
	For Each barcode In ocrResult.Barcodes
		Console.WriteLine(barcode.Value)
	Next barcode
End Using
$vbLabelText   $csharpLabel

Image d'entrée

Comment extraire du texte d'une facture dans un tutoriel C#, Figure 4 : Entrée pour lire le code-barres

Entrée pour la lecture de code-barres

Texte de sortie

Comment extraire du texte d'une facture en tutoriel C#, Figure 5 : Le résultat du traitement de l'image de code-barres

Le résultat de l'analyse de l'image du code-barres

8. Conclusion

L'article ci-dessus explique le processus d'installation et d'utilisation d'IronOCR dans un projet C# pour extraire des données de reçus, avec un exemple d'extrait de code fourni.

Veuillez lire le tutoriel sur la lecture de texte à partir d'images.

IronOCR fait partie de l'Iron Suite, qui comprend cinq bibliothèques .NET différentes pour manipuler des documents et des images. Vous pouvez acheter l'ensemble de l'Iron Suite pour le prix de seulement deux licences IronOCR.

Essayez IronOCR dans vos applications de production avec un essai gratuit.

Kannaopat Udonpant
Ingénieur logiciel
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT
Comment reconnaître une plaque d'immatriculation en C# (Tutoriel)
SUIVANT >
Comment obtenir par OCR du texte à partir d'une capture d'écran en C#