Passer au contenu du pied de page
UTILISATION D'IRONOCR

Tutoriel OCR en C# CodeProject : Extraire du texte à partir d'images avec IronOCR

La reconnaissance optique de caractères (OCR) en C# vous permet d'extraire du texte lisible par machine à partir de documents numérisés, de fichiers image et de fichiers TIFF dans des applications .NET . Avec IronOCR , une bibliothèque OCR native .NET, vous installez un package NuGet et commencez à lire du texte à partir d'images en quelques lignes de code – sans service externe, sans dépendance d'exécution, sans frais d'API par appel.

Démarrez votre essai gratuit d' IronOCR pour suivre les exemples de code ci-dessous.

Comment installer IronOCR dans un projet .NET ?

La méthode la plus rapide pour ajouter la reconnaissance optique de caractères (OCR) à un projet .NET 10 consiste à utiliser le gestionnaire de packages NuGet . Ouvrez un terminal dans le répertoire de votre projet et exécutez la commande dotnet CLI, ou utilisez la console du gestionnaire de packages dans Visual Studio :

# .NET CLI
dotnet add package IronOcr

# Package Manager Console
Install-Package IronOcr
# .NET CLI
dotnet add package IronOcr

# Package Manager Console
Install-Package IronOcr
SHELL

Après l'installation, le gestionnaire de packages NuGet télécharge tous les assemblys nécessaires et configure automatiquement les références. IronOCR cible .NET Framework 4.6.2+, .NET Core 3.1+ et .NET 5 à .NET 10, il fonctionne donc avec les applications console, les services ASP.NET Core , les applications WPF et les fonctions Azure.

Vous n'avez pas besoin d'enregistrer de clé de licence pour effectuer des tests en local : un filigrane d'essai apparaît sur le résultat jusqu'à ce qu'une licence soit appliquée. Ajoutez la directive using et, lorsque vous serez prêt pour la production, transmettez votre clé une seule fois au démarrage :

using IronOcr;

// Apply license key before any OCR calls (production only)
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";
using IronOcr;

// Apply license key before any OCR calls (production only)
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";
$vbLabelText   $csharpLabel

Consultez la page de licence IronOCR pour obtenir des informations sur les prix et l'activation.

Comment extraire du texte d'un fichier image ?

Le flux de travail OCR de base implique trois objets : IronTesseract (le moteur), OcrInput (le conteneur d'entrée) et OcrResult (la sortie). L'exemple ci-dessous lit un fichier PNG et affiche le texte reconnu dans la console.

using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
input.LoadImage("sample-document.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
input.LoadImage("sample-document.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

Sortie de reconnaissance optique de caractères

Tutoriel CodeProject sur la reconnaissance optique de caractères (OCR) en C# : Extraire du texte d'images avec IronOCR: Image 1 - Capture d'écran du résultat de l'OCR

IronTesseract encapsule le moteur Tesseract 5 avec des valeurs par défaut compatibles .NET et une gestion automatique des modèles. OcrInput.LoadImage accepte les fichiers PNG, JPEG, BMP, GIF, TIFF et WebP, vous n'avez donc que rarement besoin de convertir les formats avant de transmettre une image au moteur.

La propriété OcrResult.Text renvoie une chaîne simple de tous les caractères reconnus reliés par des sauts de ligne. Pour un accès plus riche -- cadres de délimitation des mots, scores de confiance, texte par paragraphe -- naviguez dans les collections result.Pages, result.Paragraphs, result.Words et result.Characters.

Principales caractéristiques à connaître :

  • result.Pages[0].Text -- texte d'une seule page
  • result.Words[n].Text et result.Words[n].Confidence -- précision par mot (0,0 -- 1,0)
  • result.Pages[0].Paragraphs -- segmentation de paragraphes pour l'extraction structurée

Vous pouvez également appeler ocr.ReadAsync(input) pour garder le thread d'interface utilisateur libre dans les applications de bureau ou Web.

Comment traitez-vous les documents numérisés et les fichiers TIFF ?

Les fichiers TIFF multipages sont courants dans les flux de travail de numérisation de documents. IronOCR les gère avec LoadImageFrames, ce qui vous permet de choisir exactement les cadres (pages) à traiter -- utile lorsque vous n'avez besoin que d'un sous-ensemble d'une grande archive.

using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
int[] pageIndices = { 0, 1, 2 };
input.LoadImageFrames("scanned-documents.tiff", pageIndices);

// Correct skew and remove noise before reading
input.Deskew();
input.DeNoise();

OcrResult result = ocr.Read(input);

foreach (var page in result.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}:");
    Console.WriteLine(page.Text);
}
using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
int[] pageIndices = { 0, 1, 2 };
input.LoadImageFrames("scanned-documents.tiff", pageIndices);

// Correct skew and remove noise before reading
input.Deskew();
input.DeNoise();

OcrResult result = ocr.Read(input);

foreach (var page in result.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}:");
    Console.WriteLine(page.Text);
}
$vbLabelText   $csharpLabel

Sortie ROC d'un fichier TIFF multi-pages

Tutoriel CodeProject sur la reconnaissance optique de caractères (OCR) en C# : Extraire du texte d'images avec IronOCR: Image 2 - Sortie OCR d'un fichier TIFF multipage

Deskew fait pivoter l'image pour corriger toute inclinaison introduite par les scanners à plat. DeNoise supprime les artefacts et les points parasites JPEG qui perturbent le moteur Tesseract. Ensemble, ces deux filtres de prétraitement améliorent considérablement la précision de la reconnaissance sur les numérisations de faible qualité.

Filtres supplémentaires OcrInput disponibles pour les documents sources difficiles :

  • input.Sharpen() -- augmente le contraste des contours des images floues
  • input.Binarize() -- convertit en noir et blanc pour des documents de qualité fax
  • input.Scale(200) -- agrandit les petites images pour une meilleure séparation des caractères
  • input.Rotate(90) -- corrige l'orientation des documents pivotés

Consultez le guide des filtres d'image IronOCR pour obtenir la liste complète des options de prétraitement et savoir quand les appliquer.

Comment configurer la prise en charge linguistique pour la reconnaissance optique de caractères (OCR) ?

Par défaut, IronOCR lit le texte en anglais. Pour traiter des documents dans d'autres langues, installez le package NuGet de langue correspondant et définissez la propriété Language sur l'instance IronTesseract.

dotnet add package IronOcr.Languages.German
dotnet add package IronOcr.Languages.French
dotnet add package IronOcr.Languages.Japanese
dotnet add package IronOcr.Languages.German
dotnet add package IronOcr.Languages.French
dotnet add package IronOcr.Languages.Japanese
SHELL

Configurez ensuite le moteur et, pour les documents bilingues, ajoutez une langue secondaire :

using IronOcr;
using IronOcr.Languages;

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.German;

// For bilingual documents (e.g. Canadian forms, EU directives)
ocr.AddSecondaryLanguage(OcrLanguage.French);

using var input = new OcrInput();
input.LoadImage("german-invoice.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;
using IronOcr.Languages;

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.German;

// For bilingual documents (e.g. Canadian forms, EU directives)
ocr.AddSecondaryLanguage(OcrLanguage.French);

using var input = new OcrInput();
input.LoadImage("german-invoice.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

IronOCR prend en charge plus de 125 langues , chacune distribuée sous forme de package NuGet léger distinct. Cela permet de limiter la taille de votre fichier binaire de production : seules les données linguistiques dont votre application a réellement besoin sont incluses. Le moteur combine les modèles de langage primaires et secondaires lors de la reconnaissance lorsque vous appelez AddSecondaryLanguage.

Comment gérer les erreurs de reconnaissance optique de caractères (OCR) et améliorer les résultats de reconnaissance ?

Les applications de production nécessitent une gestion des erreurs au niveau du pipeline OCR. Les problèmes de qualité d'image, les fichiers manquants ou les formats non pris en charge peuvent provoquer des exceptions. Encadrer l'appel dans un bloc try/catch vous offre une voie de récupération propre.

using IronOcr;

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;

try
{
    using var input = new OcrInput();
    input.LoadImage("document.png");
    input.DeNoise();
    input.Deskew();

    OcrResult result = ocr.Read(input);

    if (result.Text.Length > 0)
    {
        Console.WriteLine("Recognised text:");
        Console.WriteLine(result.Text);
    }
    else
    {
        Console.WriteLine("No text was detected in the image.");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"OCR error: {ex.Message}");
}
using IronOcr;

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;

try
{
    using var input = new OcrInput();
    input.LoadImage("document.png");
    input.DeNoise();
    input.Deskew();

    OcrResult result = ocr.Read(input);

    if (result.Text.Length > 0)
    {
        Console.WriteLine("Recognised text:");
        Console.WriteLine(result.Text);
    }
    else
    {
        Console.WriteLine("No text was detected in the image.");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"OCR error: {ex.Message}");
}
$vbLabelText   $csharpLabel

Voici quelques paramètres supplémentaires qui peuvent s'avérer utiles lorsque la précision est inférieure aux attentes :

  • ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto -- permet à Tesseract de choisir automatiquement entre les mises en page à une seule colonne, à plusieurs colonnes et à un seul mot
  • ocr.Configuration.ReadBarCodes = false -- désactive la détection des codes-barres si vous traitez des documents uniquement textuels et souhaitez un débit plus rapide
  • ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5 -- vous garantit l'utilisation du moteur le plus rapide disponible

Pour les formulaires structurés où les champs apparaissent à des positions prévisibles, utilisez la reconnaissance optique de caractères (OCR) basée sur les régions pour ne lire que les zones pertinentes :

using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();

using var input = new OcrInput();
var region = new CropRectangle(x: 50, y: 200, width: 600, height: 100);
input.LoadImage("form.png", region);

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();

using var input = new OcrInput();
var region = new CropRectangle(x: 50, y: 200, width: 600, height: 100);
input.LoadImage("form.png", region);

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

Limiter la reconnaissance à un rectangle de recadrage réduit le temps de traitement jusqu'à 90 % sur les grandes images. Cette technique est parfaitement adaptée à l'extraction des numéros de factures, à la lecture des champs de formulaires et à la numérisation des documents d'identité. Vous trouverez plus de détails dans le guide pratique OCR de la région .

Comment créer un PDF consultable à partir de texte reconnu ?

La conversion d'archives d'images numérisées en fichiers PDF consultables est l'un des cas d'utilisation de la reconnaissance optique de caractères (OCR) les plus intéressants. Le fichier résultant préserve l'apparence visuelle originale tout en intégrant une couche de texte invisible que les visionneuses PDF, les moteurs de recherche et les lecteurs d'écran peuvent indexer.

using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
input.Title = "Quarterly Report Q1 2026";
input.LoadImage("page1.png");
input.LoadImage("page2.png");
input.LoadImage("page3.png");

OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");

Console.WriteLine("Searchable PDF created.");
Console.WriteLine($"Pages processed: {result.Pages.Count}");
using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput();
input.Title = "Quarterly Report Q1 2026";
input.LoadImage("page1.png");
input.LoadImage("page2.png");
input.LoadImage("page3.png");

OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");

Console.WriteLine("Searchable PDF created.");
Console.WriteLine($"Pages processed: {result.Pages.Count}");
$vbLabelText   $csharpLabel

Sortie d'un document PDF consultable

Tutoriel CodeProject sur l'OCR en C# : Extraire du texte d'images avec IronOCR: Image 3 - PDF consultable créé à partir d'images d'entrée

SaveAsSearchablePdf écrit un fichier compatible PDF/A où chaque mot reconnu est placé aux coordonnées exactes en pixels de l'image originale. Adobe Acrobat, Aperçu sur macOS et Foxit Reader prennent tous en charge la recherche en texte intégral dans ces fichiers immédiatement après leur génération.

Pour les visionneuses de documents Web ou les pipelines NLP en aval, utilisez plutôt result.SaveAsHocrFile("output.hocr"). Le format hOCR est une norme XML ouverte qui encode des cadres de délimitation par mot à côté du texte, permettant la mise en surbrillance côté client lors de la recherche et les annotations d'accessibilité au niveau des mots.

Formats de sortie supplémentaires disponibles auprès de OcrResult :

  • result.SaveAsHocrFile("output.hocr") -- XML ​​hOCR avec données positionnelles
  • result.ToXDocument() -- XDocument interrogeable LINQ pour le traitement programmatique
  • result.Pages[0].Text -- Texte brut par page pour les pipelines de flux

Pour les applications qui fonctionnent déjà avec IronPDF , vous pouvez intégrer OcrResult directement dans les flux de travail de génération de PDF, en combinant l'extraction OCR avec l'édition PDF dans un seul processus .NET .

Comment lire les codes-barres en même temps que du texte ?

IronOCR peut lire les codes-barres et les codes QR intégrés dans la même image que le texte imprimé, éliminant ainsi le besoin d'exécuter une bibliothèque de codes-barres séparée. Activez cette fonctionnalité à l'aide d'une seule propriété de configuration :

using IronOcr;

var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;

using var input = new OcrInput();
input.LoadImage("shipping-label.png");

OcrResult result = ocr.Read(input);

Console.WriteLine("Text:");
Console.WriteLine(result.Text);

Console.WriteLine("Barcodes:");
foreach (var barcode in result.Barcodes)
{
    Console.WriteLine($"  {barcode.Format}: {barcode.Value}");
}
using IronOcr;

var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;

using var input = new OcrInput();
input.LoadImage("shipping-label.png");

OcrResult result = ocr.Read(input);

Console.WriteLine("Text:");
Console.WriteLine(result.Text);

Console.WriteLine("Barcodes:");
foreach (var barcode in result.Barcodes)
{
    Console.WriteLine($"  {barcode.Format}: {barcode.Value}");
}
$vbLabelText   $csharpLabel

Les formats de codes-barres pris en charge incluent Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, PDF417, Data Matrix et QR Code. Vous trouverez tous les détails dans le guide de lecture des codes-barres IronOCR .

Cette fonctionnalité est particulièrement utile dans les applications logistiques, de santé et de vente au détail où les étiquettes d'expédition, les bracelets d'identification des patients et les étiquettes de produits comportent à la fois du texte lisible par l'homme et des codes-barres lisibles par machine.

Comment comparer IronOCR avec d'autres solutions OCR .NET ?

Les développeurs qui évaluent les bibliothèques OCR for .NET prennent généralement en compte IronOCR, Tesseract .NET et les services cloud tels que Google Cloud Vision ou Azure Computer Vision. Le tableau ci-dessous résume les principales différences :

Comparaison des options OCR .NET selon les principaux critères des développeurs
Critère IronOCR Tesseract.NET Azure Computer Vision
Déploiement Sur site ou dans le cloud, sans appels externes Sur place Service exclusivement en nuage, nécessite une connexion internet.
Installation Package NuGet unique Plusieurs paquets + binaires natifs Kit de développement logiciel (SDK) + abonnement Azure
Packs linguistiques Plus de 125 packages NuGet Téléchargement manuel de tessdata Géré par Azure
Sortie PDF consultable Appel de méthode intégré Non inclus Non inclus
prétraitement des images Plus de 12 filtres intégrés Prétraitement manuel requis Automatique (côté serveur)
Modèle de tarification Licence perpétuelle unique Logiciel libre (Apache 2.0) Facturation à l'appel

Tesseract , maintenu par Google en tant que projet open-source, alimente en interne IronOCR et Tesseract .NET . IronOCR ajoute un packaging idiomatique .NET, une gestion automatique des modèles et les fonctionnalités de sortie de production (PDF consultable, exportation hOCR) qui font défaut aux liaisons Tesseract brutes. Azure Computer Vision offre une précision cloud de pointe, mais introduit une latence réseau et des coûts par appel qui ne conviennent pas aux flux de travail à volume élevé ou hors ligne.

Dans les cas où la réglementation sur la protection des données interdit l'envoi de documents à des services externes (dossiers médicaux, documents juridiques, états financiers), une bibliothèque sur site comme IronOCR est le choix approprié.

Quelles sont vos prochaines étapes ?

Vous disposez désormais des éléments de base pour ajouter la reconnaissance optique de caractères (OCR) à n'importe quelle application .NET 10 : installation via NuGet, extraction de texte de base à partir d'images, traitement TIFF multipages, configuration de la langue, gestion des erreurs, lecture basée sur les régions, détection des codes-barres et génération de PDF consultables.

Pour aller plus loin, explorez ces ressources IronOCR :

Pour toute question relative aux licences ou pour déployer IronOCR dans un environnement de production, veuillez consulter la page de licences IronOCR . Une licence d'essai gratuite supprime les filigranes de sortie pendant votre période d'évaluation, et l'équipe d'assistance d'Iron Software est disponible pour répondre à vos questions techniques à tous les niveaux.

Commencez avec IronOCR maintenant.
green arrow pointer

Questions Fréquemment Posées

Qu'est-ce que l'OCR et quels sont ses avantages pour les développeurs C# ?

La reconnaissance optique de caractères (OCR) convertit des documents tels que des feuilles de papier numérisées, des PDF ou des images en données modifiables et consultables. Pour les développeurs C#, l'OCR simplifie le traitement des documents en permettant aux applications d'extraire le texte des images et des documents numérisés, améliorant ainsi l'accessibilité et l'utilisation des données.

Comment implémenter la reconnaissance optique de caractères (OCR) dans un projet C# ?

Pour implémenter la reconnaissance optique de caractères (OCR) dans un projet C#, installez le package NuGet IronOCR , créez une instance d'IronTesseract, chargez une image dans OcrInput et appelez la méthode Read. L'objet OcrResult renvoyé contient le texte extrait et les données de positionnement de chaque mot.

Quels formats d'image sont supportés par IronOCR ?

IronOCR prend en charge les formats d'image PNG, JPEG, BMP, GIF, TIFF et WebP. Vous pouvez ainsi travailler avec la plupart des types d'images courants sans conversion préalable.

IronOCR peut-il gérer des fichiers TIFF multipages ?

Oui, IronOCR peut traiter les fichiers TIFF multipages. Utilisez LoadImageFrames avec un tableau d'indices de page pour traiter des images spécifiques, et parcourez result.Pages pour accéder au texte de chaque page.

Est-il possible d'extraire du texte d'une zone spécifique d'une image à l'aide d'IronOCR ?

Oui, transmettez un CropRectangle à LoadImage pour limiter la reconnaissance optique de caractères (OCR) à une région définie. Cela réduit considérablement le temps de traitement et s'avère utile pour extraire des champs spécifiques de formulaires, de factures et de pièces d'identité.

IronOCR prend-il en charge différentes langues pour l'extraction de texte ?

IronOCR prend en charge plus de 125 langues, chacune disponible sous forme de package NuGet distinct. Définissez la propriété Language sur IronTesseract et appelez AddSecondaryLanguage pour les documents bilingues.

Quels sont les avantages d' IronOCR par rapport à Tesseract .NET brut ?

IronOCR ajoute un packaging idiomatique .NET, une gestion automatique des modèles de langue, des filtres de prétraitement d'images intégrés, une sortie PDF consultable et une exportation hOCR en plus du moteur Tesseract, le tout accessible via un seul package NuGet sans gestion manuelle des binaires natifs.

Comment IronOCR améliore-t-il la précision de la reconnaissance de texte ?

IronOCR fournit des filtres de prétraitement (Deskew, DeNoise, Sharpen, Binarize, Scale, and Rotate) qui corrigent les défauts de numérisation courants avant que le moteur Tesseract ne traite l'image, améliorant ainsi la précision de la reconnaissance sur des sources de faible qualité.

IronOCR peut-il lire les codes-barres et les codes QR ?

Oui, définissez ocr.Configuration.ReadBarCodes sur true pour détecter les codes-barres et les codes QR présents dans la même image, en plus du texte. Les résultats sont disponibles dans OcrResult.Barcodes, avec le type de format et la valeur décodée.

Quels sont les cas d'utilisation courants d' IronOCR dans les applications C# ?

IronOCR est utilisé dans les systèmes de gestion de documents, l'extraction de données de factures et de reçus, la génération de PDF consultables à partir d'archives numérisées, la lecture des champs de formulaires, le traitement des étiquettes d'expédition, la numérisation des dossiers médicaux et les outils d'accessibilité.

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

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi