Comment utiliser les images d'entrée pour le traitement OCR en C#

Comment lire des images en C# ; avec IronOCR

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

IronOcr extrait du texte à partir d'images aux formats JPG, PNG, GIF, TIFF et BMP à l'aide de la technologie de reconnaissance optique de caractères. L'extraction de texte de base ne nécessite qu'une ligne de code après l'installation du package NuGet.

La technologie OCR (reconnaissance optique de caractères) permet de reconnaître et d'extraire du texte à partir d'images. Il numérise des documents imprimés en extrayant le contenu textuel de pages scannées, de photographies ou d'autres fichiers d'images. IronOcr utilise des algorithmes avancés d'apprentissage automatique issus de Tesseract 5 combinés à un prétraitement d'image propriétaire pour une précision à la pointe de l'industrie.

La bibliothèque prend en charge les formats jpg, png, gif, tiff et bmp. Les filtres d'image améliorent la capacité de lecture grâce à la correction automatique des problèmes de qualité les plus courants. IronOCR combine Tesseract 5 avec un prétraitement avancé pour fournir des résultats précis sur différentes qualités et formats d'images, des scans haute résolution aux images web compressées.

Démarrage rapide : Lire un fichier image avec IronOCR

Extraire du texte d'une image avec une seule ligne de code. Cet exemple charge une image et lit son texte à l'aide de la méthode Read sur IronTesseract. La bibliothèque gère automatiquement le prétraitement des images et l'extraction du texte.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronOCR avec le gestionnaire de packages NuGet

    PM > Install-Package IronOcr

  2. Copiez et exécutez cet extrait de code.

    var result = new IronTesseract().Read(new OcrImageInput("Potter.png"));
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronOCR dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer


Comment lire des images avec IronOCR?

Commencez par instancier la classe IronTesseract. Utilisez l'instruction "using" pour créer un objet OcrImageInput avec le chemin d'accès au fichier image. Cela permet d'assurer une élimination correcte des ressources. IronOCR prend en charge les formats jpg, png, gif, tiff et bmp. Exécutez l'OCR avec la méthode Read. La bibliothèque détecte automatiquement le format de l'image et applique le prétraitement approprié.

Pour les nouveaux utilisateurs, consultez le guide d'installation pour Windows ou explorez les options du paquet NuGet. Pour le développement multiplateforme, consultez Installation Linux ou installation macOS.

[{i:( À partir de la version 2025.6 :

  • Le chargement des images TIFF offre désormais des performances plus rapides et constantes.
  • La lecture d'images TIFF présente des améliorations de performance qui dépendent du GPU de la machine. Certains utilisateurs pourraient voir leur vitesse multipliée par deux, tandis que d'autres pourraient constater des performances similaires à celles des versions précédentes @@--BRACKET-FERMETURE--@@
/* :path=/static-assets/ocr/content-code-examples/how-to/input-images-read.cs */
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("Potter.png");

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Display the extracted text
Console.WriteLine(ocrResult.Text);

// Get confidence level
double confidence = ocrResult.Confidence;
Console.WriteLine($"Confidence: {confidence}%");
/* :path=/static-assets/ocr/content-code-examples/how-to/input-images-read.cs */
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("Potter.png");

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Display the extracted text
Console.WriteLine(ocrResult.Text);

// Get confidence level
double confidence = ocrResult.Confidence;
Console.WriteLine($"Confidence: {confidence}%");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
Démonstration d'extraction de texte IronOcr : Image de la page Harry Potter convertie en texte brut dans l'éditeur de code

Visitez How to Read Multi-Frame/Page GIFs and TIFFs pour lire des images TIFF et GIF. Pour les pages multiples, voir l'exemple traitement TIFF multi-pages.

Pourquoi le niveau de confiance est-il important ? Le niveau de confiance indique la certitude d'IronOCR quant à l'exactitude du texte extrait. Les valeurs supérieures à 85 % indiquent généralement des résultats fiables. Les notes inférieures peuvent nécessiter un prétraitement de l'image ou une révision manuelle. Utilisez les scores de confiance pour marquer automatiquement les documents en vue d'une vérification humaine ou pour déclencher des [filtres d'optimisation d'image](/csharp/ocr/features/filtres/) supplémentaires.

Quand dois-je utiliser différents formats d'image ? Les formats PNG et TIFF offrent les meilleurs résultats d'OCR grâce à une compression sans perte. Utilisez le format PNG pour les documents d'une seule page et le format TIFF pour les numérisations de plusieurs pages. Le format JPEG fonctionne bien pour les photographies mais peut introduire des artefacts de compression. Le format BMP offre une qualité non compressée mais des fichiers plus volumineux. Le format GIF convient aux graphiques simples avec peu de couleurs. En savoir plus sur [l'optimisation spécifique au format](/csharp/ocr/features/compatibility/).

Quelles sont les erreurs courantes de lecture d'images ? Les erreurs les plus courantes sont une faible résolution d'image (inférieure à 200 DPI), un texte de travers, un mauvais contraste ou des langues non prises en charge. IronOCR fournit une correction automatique pour de nombreux problèmes, mais les problèmes graves peuvent nécessiter un prétraitement manuel. Consultez notre [guide de dépannage](/csharp/ocr/troubleshooting/general-troubleshooting-ocr/) pour trouver des solutions. ## Comment importer des images en tant qu'octets? La classe `OcrImageInput` accepte les images sous forme de chemins de fichiers, d'octets, d'objets `AnyBitmap`, de flux ou d'images. `AnyBitmap` est un objet bitmap provenant de [IronSoftware.Drawing.AnyBitmap](/open-source/csharp/drawing/examples/bitmap-to-stream/). Cette flexibilité permet une intégration transparente avec diverses sources de données, notamment les bases de données, les API web et le stockage en nuage. Cette flexibilité est utile lorsque l'on travaille avec des images provenant de bases de données, de services web ou de flux de mémoire. Pour le traitement avancé des flux, voir [OCR with input streams](/csharp/ocr/how-to/input-streams/). Le [guide d'intégration de System.Drawing](/csharp/ocr/how-to/input-system-drawing/) fournit des exemples supplémentaires pour la compatibilité avec le code existant. ```csharp :path=/static-assets/ocr/content-code-examples/how-to/input-images-import-byte.cs ```

Quand dois-je utiliser des tableaux d'octets plutôt que des chemins d'accès aux fichiers ? Les tableaux d'octets fonctionnent mieux lorsque les images proviennent de bases de données, de services web ou de sources cryptées. Ils offrent une meilleure sécurité car les fichiers n'ont pas besoin d'être stockés temporairement sur le disque. Utilisez les tableaux d'octets pour les applications en nuage, les microservices ou le traitement de documents sensibles. Les chemins de fichiers restent plus efficaces pour le traitement local par lots de grandes collections d'images. ```csharp using IronOcr; using IronSoftware.Drawing; using System.IO; // Method 1: From URL var imageFromUrl = AnyBitmap.FromUri("https://example.com/document.jpg"); using var urlInput = new OcrImageInput(imageFromUrl); // Method 2: From Stream using var fileStream = File.OpenRead("document.png"); using var streamInput = new OcrImageInput(fileStream); // Method 3: From System.Drawing (with IronSoftware.Drawing) var bitmap = AnyBitmap.FromFile("scan.bmp"); using var bitmapInput = new OcrImageInput(bitmap); // Process any of these inputs IronTesseract ocr = new IronTesseract(); OcrResult result = ocr.Read(bitmapInput); ```

Pourquoi la gestion de la mémoire est-elle importante pour les octets d'image ? Les images de grande taille consomment beaucoup de mémoire, en particulier lors du traitement simultané de plusieurs documents. L'utilisation d'énoncés de type "using" garantit une élimination correcte des ressources. Pour le traitement par lots, envisagez de mettre en œuvre un système de file d'attente avec un nombre limité d'opérations simultanées. Le guide [multithreading](/csharp/ocr/how-to/async/) présente des techniques efficaces de gestion de la mémoire.

Quelles sont les implications en termes de performances des différents types d'entrée ? Les chemins de fichiers offrent les performances les plus rapides pour les fichiers locaux, car IronOCR lit les données directement. Les tableaux d'octets nécessitent le chargement d'images entières en mémoire, mais offrent une certaine flexibilité. Les flux équilibrent l'utilisation de la mémoire et les performances en lisant les données de manière incrémentielle. Pour des performances optimales avec des lots importants, consultez notre [guide d'optimisation des performances](/csharp/ocr/examples/tune-tesseract-for-speed-in-dotnet/). ## Comment spécifier une région de balayage? Passez un `CropRectangle` lors de l'instanciation de `OcrImageInput` pour spécifier la région de l'image à traiter. La limitation de la zone de balayage améliore considérablement les performances. Dans l'exemple ci-dessous, seuls le numéro et le titre du chapitre sont lus. Cette technique permet de réduire le temps de traitement jusqu'à 90 % en ciblant des zones spécifiques du document. Pour les mises en page complexes ou les régions multiples, voir [OCR Region of an Image](/csharp/ocr/how-to/ocr-region-of-an-image/). Le [guide des zones de contenu](/csharp/ocr/troubleshooting/crop-regions-rectangles/) explique les techniques avancées de sélection de régions. ```csharp :path=/static-assets/ocr/content-code-examples/how-to/input-images-read-specific-region.cs ```

Pourquoi la spécification de régions améliore-t-elle les performances ? Le fait de ne traiter que les zones d'images pertinentes permet de réduire la charge de calcul de 60 à 90 %. Les moteurs d'OCR analysent chaque pixel de la zone d'entrée, de sorte que des régions plus petites signifient un traitement plus rapide. Cette approche améliore également la précision en éliminant les interférences potentielles dues aux en-têtes, aux pieds de page ou aux éléments décoratifs situés en dehors de la zone de texte cible.
Démonstration d'une région de balayage OCR avec des rectangles rouges mettant en évidence le titre du chapitre huit dans l'image source et la sortie de débogage
### Quand dois-je utiliser plusieurs régions de balayage? Utilisez plusieurs régions pour les documents comportant des zones de texte distinctes, comme les formulaires, les factures ou les mises en page à plusieurs colonnes. Traitez chaque région séparément afin de maintenir un flux de texte logique. Cette approche fonctionne bien pour [extraire des données de tableaux](/csharp/ocr/how-to/read-table-in-document/) ou lire des champs spécifiques dans des documents structurés.

Quelles sont les conventions du système de coordonnées ? IronOCR utilise des coordonnées de pixels standard avec l'origine (0,0) dans le coin supérieur gauche. X augmente vers la droite, Y augmente vers le bas. Les paramètres du rectangle sont (X, Y, Largeur, Hauteur). Pour une sélection précise de la région, utilisez des outils d'édition d'images pour identifier les coordonnées des pixels ou mettez en œuvre un sélecteur visuel de région dans votre application.

Comment puis-je appliquer le traitement avancé des images ? IronOCR offre des fonctionnalités complètes de prétraitement d'images afin d'améliorer la précision de l'OCR. Appliquez des filtres lorsque vous avez affaire à des images de faible qualité, à des documents scannés ou à des conditions difficiles. L'[Assistant de filtre](/csharp/ocr/how-to/filter-wizard/) permet de déterminer les combinaisons de filtres optimales pour vos images spécifiques. ```csharp using IronOcr; IronTesseract ocr = new IronTesseract(); using var input = new OcrImageInput("low-quality-scan.jpg"); // Apply image enhancement filters input.Deskew(); // Correct image rotation input.DeNoise(); // Remove background noise input.Binarize(); // Convert to black and white input.EnhanceResolution(300); // Adjust DPI for better accuracy // Configure for better accuracy ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; ocr.Configuration.Language = OcrLanguage.English; OcrResult result = ocr.Read(input); ``` Découvrez [les filtres d'optimisation d'image](/csharp/ocr/examples/ocr-image-filters-for-net-tesseract/) et [la correction des scans de mauvaise qualité](/csharp/ocr/examples/ocr-low-quality-scans-tesseract/). Pour les besoins de correction des couleurs, voir le [guide de correction des couleurs de l'image](/csharp/ocr/how-to/image-color-correction/).

Quand dois-je appliquer des filtres de prétraitement d'image ? Appliquez des filtres lorsque vous traitez des documents scannés, des photographies de texte ou des images présentant des problèmes de qualité. Parmi les scénarios les plus courants, citons la correction de pages inclinées, la suppression du bruit de fond des photocopies ou l'amélioration de textes décolorés. Le [guide des paramètres DPI](/csharp/ocr/how-to/dpi-setting/) permet d'optimiser les problèmes liés à la résolution.

Pourquoi l'ordre des filtres est-il important ? L'ordre des filtres a un impact significatif sur les résultats. Appliquez d'abord la correction de la rotation (`Deskew`), puis la suppression du bruit et enfin l'amélioration du contraste. La binarisation doit généralement venir en dernier. Un ordre incorrect peut amplifier les problèmes - par exemple, l'accentuation de la netteté avant le débruitage augmente la visibilité du bruit. Testez différentes séquences pour obtenir des résultats optimaux.

Quelles sont les erreurs de prétraitement les plus courantes ? Le surtraitement est l'erreur la plus fréquente. Une accentuation excessive crée des artefacts, un débruitage agressif supprime les détails du texte et des seuils de binarisation inappropriés perdent des informations. Commencez par un prétraitement minimal et n'ajoutez des filtres qu'en cas de besoin. Le [guide de correction de la qualité de l'image](/csharp/ocr/how-to/image-quality-correction/) fournit des bonnes pratiques détaillées. ## Comment optimiser les performances? Tenez compte de ces optimisations lors du traitement d'images multiples ou de lots importants : 1. **Réutiliser l'instance `IronTesseract`** : Créer une instance pour plusieurs opérations 2. **Spécifiez les zones de numérisation** : Limitez l'OCR aux zones pertinentes de l'image pour obtenir des gains de 60 à 90 % 3. : Les formats PNG et TIFF donnent de meilleurs résultats que le format JPEG 4. Pourquoi la réutilisation des instances améliore-t-elle les performances ? charge les données linguistiques et configure le moteur OCR, ce qui prend de 200 à 500 ms. La réutilisation des instances élimine cette surcharge pour les opérations ultérieures. Créez une instance unique pour les applications web ou une instance partagée pour le traitement par lots afin de maximiser l'efficacité. ### Quand utiliser le traitement parallèle? Le traitement parallèle profite aux scénarios comportant plusieurs images indépendantes. Traiter simultanément différentes pages ou documents, mais éviter de paralléliser les opérations sur la même image. Les processeurs modernes gèrent efficacement 4 à 8 opérations d'OCR simultanées. Surveillez l'utilisation de la mémoire car chaque opération nécessite 100 à 500 Mo en fonction de la taille de l'image.

Quelles sont les considérations relatives à l'utilisation de la mémoire ? Les opérations d'OCR nécessitent généralement 10 à 20 fois la taille du fichier image en RAM. Une image de 5 Mo peut utiliser 50 à 100 Mo pendant le traitement. Pour les lots importants, mettez en œuvre un modèle producteur-consommateur avec un nombre limité d'opérations simultanées. L'exemple [abort token](/csharp/ocr/examples/abort-token/) démontre l'annulation d'opérations gourmandes en mémoire. ## Quelles sont les prochaines étapes? Ces ressources permettent d'extraire du texte à partir de scénarios plus complexes : - [Lire du texte à partir de PDF](/csharp/ocr/how-to/input-pdfs/) - Traiter les documents PDF avec OCR - [Extraire des données de captures d'écran](/csharp/ocr/examples/read-screenshot/) - Capturer et lire le contenu de l'écran - [Traiter des documents numérisés](/csharp/ocr/examples/read-scanned-document/) - Traiter des fichiers numérisés de plusieurs pages - [Travailler avec des objets System.Drawing](/csharp/ocr/how-to/input-system-drawing/) - S'intégrer au code d'imagerie .NET existant - [Lire plusieurs langues](/csharp/ocr/how-to/ocr-multiple-languages/) - Extraire du texte dans plus de 125 langues - [Traiter des types de documents spécifiques](/csharp/ocr/tutorials/read-specific-document/) - Optimiser pour les passeports, les factures, etc

Questions Fréquemment Posées

Quels formats d'image peuvent être lus pour l'extraction de texte en C# ?

IronOCR prend en charge la lecture de texte à partir des formats d'image JPG, PNG, GIF, TIFF et BMP. La bibliothèque détecte automatiquement le format de l'image et applique le prétraitement approprié pour obtenir des résultats optimaux en matière d'extraction de texte.

Comment extraire du texte d'un fichier image en une ligne de code ?

Vous pouvez extraire du texte avec une seule ligne en utilisant IronOCR : `var result = new IronTesseract().Read(new OcrImageInput("image.png"));`. Cela permet de traiter automatiquement l'image et d'extraire le texte à l'aide de la technologie OCR de Tesseract 5.

Quelle est la technologie OCR utilisée pour la lecture d'images ?

IronOCR combine les algorithmes avancés d'apprentissage automatique de Tesseract 5 avec un prétraitement d'image propriétaire. Cette combinaison permet d'obtenir une précision inégalée dans l'industrie, quelle que soit la qualité et le format de l'image, qu'il s'agisse de scans haute résolution ou d'images web compressées.

Comment gérer correctement les ressources lors de la lecture d'images ?

Utilisez l'instruction "using" lors de la création d'un objet OcrImageInput afin de garantir l'utilisation correcte des ressources. Ce modèle gère automatiquement la mémoire et les gestionnaires de fichiers : `using var ocrInput = new OcrImageInput("image.jpg");`

Puis-je lire des parties spécifiques d'une image au lieu du fichier entier ?

Oui, IronOCR vous permet de spécifier des régions de recadrage pour définir des zones de lecture spécifiques au sein d'une image. Cette fonction permet de concentrer le traitement OCR sur les parties pertinentes de l'image pour une meilleure performance et une plus grande précision.

Quel prétraitement est automatiquement appliqué aux images ?

IronOCR applique automatiquement des filtres d'image qui améliorent la capacité de lecture en corrigeant les problèmes de qualité courants. La bibliothèque prend en charge la détection des formats et le prétraitement sans nécessiter de configuration manuelle pour les cas d'utilisation de base.

Existe-t-il des améliorations de performance pour le traitement des images TIFF ?

À partir de la version 2025.6 d'IronOCR, le chargement d'images TIFF offre des performances toujours plus rapides. La lecture d'images TIFF présente des améliorations qui dépendent du GPU de la machine, certains utilisateurs bénéficiant d'une vitesse jusqu'à deux fois supérieure à celle des versions précédentes.

Curtis Chau
Rédacteur technique

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 ...

Lire la suite
Revu par
Jeff Fritz
Jeffrey T. Fritz
Responsable principal du programme - Équipe de la communauté .NET
Jeff est également responsable principal du programme pour les équipes .NET et Visual Studio. Il est le producteur exécutif de la série de conférences virtuelles .NET Conf et anime 'Fritz and Friends', une diffusion en direct pour développeurs qui est diffusée deux fois par semaine où il parle de technologie et écrit du code avec les téléspectateurs. Jeff écrit des ateliers, des présentations et prévoit du contenu pour les plus grands événements de développement Microsoft, y compris Microsoft Build, Microsoft Ignite, .NET Conf et le sommet Microsoft MVP
Prêt à commencer?
Nuget Téléchargements 5,246,844 | Version : 2025.12 vient de sortir