Passer au contenu du pied de page
UTILISATION D'IRONOCR

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

Comment effectuer une reconnaissance optique de caractères (OCR) sur un reçu avec Tesseract

  1. Installez la bibliothèque C# OCR de reçus avec Tesseract
  2. Explorez la bibliothèque C# riche en fonctionnalités pour effectuer la reconnaissance optique de caractères (OCR) sur les reçus.
  3. Extraire les données du reçu avec Tesseract
  4. Rechercher des données spécifiques dans le texte extrait.
  5. Lire la valeur des codes-barres sur l'image du reçu d'entrée

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

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

L'une des principales caractéristiques d'IronOCR qui le rend particulièrement utile pour la reconnaissance optique de caractères (OCR) des reçus est sa capacité à détecter automatiquement l'orientation du texte , même si l'image a été pivotée ou déformée. Ceci est essentiel pour une reconnaissance de texte précise lors du téléchargement de reçus et de l'extraction de données, car les reçus contiennent souvent beaucoup d'informations et peuvent être pliés ou froissés, ce qui peut rendre le texte déformé.

2. Fonctionnalités d'IronOCR

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

3. Créer un Nouveau Projet dans Visual Studio

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

Entrez le nom du projet et sélectionnez le chemin dans la zone de texte appropriée. Ensuite, cliquez sur le bouton Créer. Sélectionnez le framework .NET requis, comme indiqué dans la capture d'écran ci-dessous :

! Création d'un nouveau projet dans Visual Studio

La structure du projet pour l'application console va maintenant être générée. Une fois l'opération terminée, le fichier Program.cs s'ouvrira, vous permettant d'écrire et d'exécuter du code source.

Le fichier Program.cs généré par l'Assistant Nouveau projet de Visual Studio

4. Installez IronOCR

Dans Visual Studio, vous pouvez facilement intégrer IronOCR à votre projet C#. IronOCR offre plusieurs façons de s'intégrer à un projet C# .NET. Nous allons ici aborder l'un d'entre eux : l'installation d'IronOCR à l'aide du gestionnaire de packages NuGet.

Dans Visual Studio, allez dans Tools > NuGet Package Manager > Package Manager Console

! La console du gestionnaire de packages NuGet de Visual Studio

Une nouvelle console apparaîtra en bas de la fenêtre de Visual Studio. Saisissez la commande ci-dessous dans la console et appuyez sur Entrée.

Install-Package IronOcr

IronOCR sera installé en quelques secondes.

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

IronOCR est une puissante bibliothèque OCR permettant d'extraire et d'accéder aux données détaillées des reçus. Grâce à IronOCR, vous pouvez convertir une image de reçu en texte exploitable par machine, facilement analysable et traitable, tout en garantissant la confidentialité des données.

Voici un exemple d'utilisation d'IronOCR pour extraire du texte d'un reçu :

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);
        }
    }
}
Imports IronOcr
Imports System

Friend Class Program
	Shared Sub Main()
		Dim ocrTesseract As New IronTesseract()

		' Load the receipt image
		Using ocrInput As New OcrInput("ocr.png")
			' Read the OCR result
			Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
			Dim recognizedText As String = ocrResult.Text

			' Output the recognized text to the console
			Console.WriteLine(recognizedText)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Consultez le tutoriel " Lecture de texte à partir d'une image " pour plus de détails sur la façon dont IronOCR lit le texte des images en utilisant C#.

Résultat du code ci-dessus :

- 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. Extraction de données spécifiques à partir d'images de reçus à l'aide d'IronOCR

IronOCR permet aux développeurs de récupérer des informations cruciales à partir de reçus numérisés, telles que les montants des taxes et les noms des commerçants.

Voici un exemple montrant comment extraire le montant total d'une image de reçu :

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);
        }
    }
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System

Friend Class Program
	Shared Sub Main()
		Dim ocrTesseract As New IronTesseract()

		' Set the language for OCR
		ocrTesseract.Language = OcrLanguage.English

		' 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 amount in the OCR result
			Dim totalAmount = If(ocrResult.Text.Contains("Total:"), ocrResult.Text.Split("Total:")(1).Split(vbLf)(0), "")
			Console.WriteLine("Total Amount: " & totalAmount)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Grâce aux multiples paramètres offerts par la classe OcrInput , il est possible d'optimiser l'image d'entrée pour une meilleure précision du processus OCR.

Entrée

! L'image d'entrée utilisée pour illustrer l'extraction de données spécifiques à partir de 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 le texte. Pour lire les codes-barres sur les reçus, vous devrez utiliser la classe BarcodeReader en combinaison avec la méthode ReadBarCodes .

Voici un exemple de lecture des codes-barres :

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);
            }
        }
    }
}
Imports IronOcr
Imports System

Friend Class Program
	Shared Sub Main()
		Dim ocrTesseract = New IronTesseract()
		ocrTesseract.Configuration.ReadBarCodes = True

		' Load the receipt image with a barcode
		Using ocrInput As New OcrInput("b.png")
			Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)

			' Output the barcode values to the console
			For Each barcode In ocrResult.Barcodes
				Console.WriteLine(barcode.Value)
			Next barcode
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Image d'entrée

! Entrée pour la lecture du code-barres

Texte de sortie

! Résultat du traitement 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 à partir de reçus, avec des exemples de code fournis.

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

IronOCR fait partie de la suite Iron Suite , qui comprend cinq bibliothèques .NET différentes pour la manipulation de documents et d'images. Vous pouvez acheter la suite Iron complète pour le prix de seulement deux licences IronOCR .

Essayez IronOCR dans vos applications de production grâce à un essai gratuit .

Questions Fréquemment Posées

Comment puis-je utiliser IronOCR pour effectuer l'OCR sur une image de réception en C# ?

Vous pouvez utiliser IronOCR pour effectuer l'OCR sur une image de reçu en chargeant l'image dans la classe OcrInput et en appelant la méthode Read pour extraire les données textuelles, telles que les listes détaillées et les montants totaux.

Quels sont les avantages d'utiliser IronOCR par rapport à Tesseract pour le traitement des factures?

IronOCR offre une précision améliorée, prend en charge plus de 125 langues et inclut des fonctionnalités telles que la détection automatique de l'orientation du texte et des capacités d'apprentissage profond. Il est également plus facile à intégrer dans les projets C# en utilisant le gestionnaire de packages NuGet.

Comment intégrer IronOCR dans un projet Visual Studio ?

Pour intégrer IronOCR dans un projet Visual Studio, utilisez le gestionnaire de packages NuGet. Naviguez vers Outils > Gestionnaire de packages NuGet > Console du gestionnaire de packages, puis exécutez Install-Package IronOcr pour ajouter la bibliothèque à votre projet.

IronOCR peut-il gérer plusieurs langues dans l'OCR de reçus ?

Oui, IronOCR peut gérer plusieurs langues, prenant en charge plus de 125 langues mondiales, ce qui le rend idéal pour traiter des reçus avec du texte multilingue.

Comment IronOCR améliore-t-il la précision de la reconnaissance du texte dans les reçus?

IronOCR améliore la précision de la reconnaissance de texte grâce à des fonctionnalités telles que l'apprentissage approfondi, la détection automatique de l'orientation du texte et la capacité d'optimiser les images en utilisant la classe OcrInput pour de meilleurs résultats OCR.

Est-il possible d'extraire des listes détaillées de reçus en utilisant IronOCR?

Oui, IronOCR peut être utilisé pour extraire des listes détaillées de reçus en traitant les données textuelles et en identifiant les articles de ligne par correspondance de motifs après avoir effectué l'OCR.

Comment IronOCR gère-t-il la lecture de code-barres sur les reçus?

IronOCR gère la lecture de code-barres en utilisant la classe BarcodeReader et la méthode ReadBarCodes pour scanner et décoder les codes-barres présents sur les reçus.

Quels formats de fichiers IronOCR peut-il traiter pour l'OCR de reçus?

IronOCR peut traiter une variété de formats de fichiers pour l'OCR de reçus, y compris PNG, JPG, TIFF et PDF, ce qui le rend polyvalent pour différents types de saisie.

Quelles étapes sont impliquées dans la mise en place d'IronOCR pour le traitement des factures en C#?

Configurer IronOCR pour le traitement des factures implique d'installer la bibliothèque via NuGet, de configurer l'OcrInput avec l'image du reçu et d'utiliser la méthode Read pour extraire les données textuelles. Vous pouvez également utiliser les fonctionnalités de la bibliothèque pour améliorer la précision et extraire des données spécifiques comme les totaux.

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. Pendant qu'il poursuivait son diplôme, Kannapat est également devenu membre du laboratoire de robotique de véhicules, qui fait partie du département de bioproduction. En 2022, il a utilisé ses compé...
Lire la suite