Comment extraire du texte à partir d'images en C#

C# OCR Image to Text Tutorial: Convert Images to Text Without Tesseract

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

Vous cherchez à convertir des images en texte en C# sans avoir à vous soucier des configurations complexes de Tesseract ? Ce didacticiel complet IronOCR for .NET vous montre comment mettre en œuvre une puissante reconnaissance optique de caractères dans vos applications .NET avec seulement quelques lignes de code.

Démarrage rapide : extraire le texte d'une image en une ligne

Cet exemple montre à quel point il est facile d'appréhender IronOCR - une seule ligne de C# transforme votre image en texte. Elle démontre l'initialisation du moteur OCR et la lecture et l'extraction immédiates de texte sans configuration complexe.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. Copy and run this code snippet.

    string text = new IronTesseract().Read("image.png").Text;
  3. Deploy to test on your live environment

    Start using IronOCR in your project today with a free trial
    arrow pointer

Comment lire du texte à partir d'images dans les applications .NET?

Pour obtenir la fonctionnalité C# de conversion d'images en texte dans vos applications .NET, vous aurez besoin d'une bibliothèque d'OCR fiable. IronOCR fournit une solution gérée à l'aide de la classe IronOcr.IronTesseract qui maximise à la fois la précision et la vitesse sans nécessiter de dépendances externes.

Commencez par installer IronOCR dans votre projet Visual Studio. You can download the IronOCR DLL directly or use NuGet Package Manager.

Install-Package IronOcr

Pourquoi choisir IronOCR pour l'OCR en C# sans Tesseract?

Lorsque vous devez convertir des images en texte en C#, IronOCR offre des avantages significatifs par rapport aux implémentations traditionnelles de Tesseract :

  • Fonctionne immédiatement dans les environnements .NET purs
  • Aucune installation ou configuration de Tesseract n'est requise
  • Exécute les moteurs les plus récents : Tesseract 5 (plus Tesseract 4 & 3)
  • Compatible avec .NET Framework 4.5+, .NET Standard 2+ et .NET Core 2, 3, 5, 6, 7, 8, 9 et 10
  • Amélioration de la précision et de la vitesse par rapport à la version vanille de Tesseract
  • Prise en charge des déploiements Xamarin, Mono, Azure et Docker
  • Gestion de dictionnaires Tesseract complexes par le biais de packages NuGet
  • Traite automatiquement les PDF, les TIFF MultiFrame et tous les principaux formats d'image
  • Corrige les numérisations de mauvaise qualité et de biais pour des résultats optimaux

Commencez à utiliser IronOCR dans votre projet aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer

Comment utiliser le tutoriel IronOCR C# pour l'OCR de base?

Cet exemple C# d'Iron Tesseract démontre la manière la plus simple de lire du texte à partir d'une image à l'aide d'IronOcr. La classe IronOcr.IronTesseract extrait du texte et le renvoie sous forme de chaîne de caractères.

// Basic C# OCR image to text conversion using IronOCR
// This example shows how to extract text from images without complex setup

using IronOcr;
using System;

try
{
    // Initialize IronTesseract for OCR operations
    var ocrEngine = new IronTesseract();

    // Path to your image file - supports PNG, JPG, TIFF, BMP, and more
    var imagePath = @"img\Screenshot.png";

    // Create input and perform OCR to convert image to text
    using (var input = new OcrInput(imagePath))
    {
        // Read text from image and get results
        OcrResult result = ocrEngine.Read(input);

        // Display extracted text
        Console.WriteLine(result.Text);
    }
}
catch (OcrException ex)
{
    // Handle OCR-specific errors
    Console.WriteLine($"OCR Error: {ex.Message}");
}
catch (Exception ex)
{
    // Handle general errors
    Console.WriteLine($"Error: {ex.Message}");
}
// Basic C# OCR image to text conversion using IronOCR
// This example shows how to extract text from images without complex setup

using IronOcr;
using System;

try
{
    // Initialize IronTesseract for OCR operations
    var ocrEngine = new IronTesseract();

    // Path to your image file - supports PNG, JPG, TIFF, BMP, and more
    var imagePath = @"img\Screenshot.png";

    // Create input and perform OCR to convert image to text
    using (var input = new OcrInput(imagePath))
    {
        // Read text from image and get results
        OcrResult result = ocrEngine.Read(input);

        // Display extracted text
        Console.WriteLine(result.Text);
    }
}
catch (OcrException ex)
{
    // Handle OCR-specific errors
    Console.WriteLine($"OCR Error: {ex.Message}");
}
catch (Exception ex)
{
    // Handle general errors
    Console.WriteLine($"Error: {ex.Message}");
}
' Basic C# OCR image to text conversion using IronOCR
' This example shows how to extract text from images without complex setup

Imports IronOcr
Imports System

Try
	' Initialize IronTesseract for OCR operations
	Dim ocrEngine = New IronTesseract()

	' Path to your image file - supports PNG, JPG, TIFF, BMP, and more
	Dim imagePath = "img\Screenshot.png"

	' Create input and perform OCR to convert image to text
	Using input = New OcrInput(imagePath)
		' Read text from image and get results
		Dim result As OcrResult = ocrEngine.Read(input)

		' Display extracted text
		Console.WriteLine(result.Text)
	End Using
Catch ex As OcrException
	' Handle OCR-specific errors
	Console.WriteLine($"OCR Error: {ex.Message}")
Catch ex As Exception
	' Handle general errors
	Console.WriteLine($"Error: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

Ce code atteint une précision de 100 % sur des images claires, en extrayant le texte exactement comme il apparaît :

IronOCR Simple Example

In this simple example we test the accuracy of our C# OCR library to read text from a PNG Image. This is a very basic test, but things will get more complicated as the tutorial continues.

The quick brown fox jumps over the lazy dog

La classe IronTesseract gère les opérations OCR complexes en interne. Il analyse automatiquement l'alignement, optimise la résolution et utilise l'IA pour lire le texte de l'image à l'aide d'IronOcr avec une précision de niveau humain.

Malgré le traitement sophistiqué effectué en coulisses (analyse d'image, optimisation du moteur et reconnaissance intelligente du texte), le processus d'OCR correspond à la vitesse de lecture humaine tout en conservant des niveaux de précision exceptionnels.

IronOCR Simple Example showing C# OCR image to text conversion with 100% accuracy (Exemple simple d'IronOCR montrant la conversion d'une image en texte en C# avec une précision de 100 %) Capture d'écran démontrant la capacité d'IronOCR à extraire du texte d'une image PNG avec une précision parfaite

Comment mettre en œuvre un OCR C# avancé sans configuration de Tesseract?

Pour les applications de production nécessitant des performances optimales lorsque vous convertissez des images en texte en C#, utilisez conjointement les classes OcrInput et IronTesseract. Cette approche permet de contrôler finement le processus d'OCR.

Caractéristiques de la classe OcrInput

  • Traite plusieurs formats d'images : JPEG, TIFF, GIF, BMP, PNG
  • Importation de PDF complets ou de pages spécifiques
  • Améliore automatiquement le contraste, la résolution et la qualité de l'image
  • Corrige la rotation, le bruit de numérisation, l'inclinaison et les images négatives

Caractéristiques de la classe IronTesseract

  • Accès à plus de 125 langues prêtes à l'emploi
  • Moteurs Tesseract 5, 4 et 3 inclus
  • Spécification du type de document (capture d'écran, extrait ou document complet)
  • Capacités de lecture de codes-barres intégrées
  • Plusieurs formats de sortie : PDF consultables, HTML HOCR, objets DOM et chaînes de caractères

Comment démarrer avec OcrInput et IronTesseract?

Voici une configuration recommandée pour ce tutoriel IronOcr C# qui fonctionne bien avec la plupart des types de documents :

using IronOcr;

// Initialize IronTesseract for advanced OCR operations
IronTesseract ocr = new IronTesseract();

// Create input container for processing multiple images
using (OcrInput input = new OcrInput())
{
    // Process specific pages from multi-page TIFF files
    int[] pageIndices = new int[] { 1, 2 };

    // Load TIFF frames - perfect for scanned documents
    input.LoadImageFrames(@"img\Potter.tiff", pageIndices);

    // Execute OCR to read text from image using IronOCR
    OcrResult result = ocr.Read(input);

    // Output the extracted text
    Console.WriteLine(result.Text);
}
using IronOcr;

// Initialize IronTesseract for advanced OCR operations
IronTesseract ocr = new IronTesseract();

// Create input container for processing multiple images
using (OcrInput input = new OcrInput())
{
    // Process specific pages from multi-page TIFF files
    int[] pageIndices = new int[] { 1, 2 };

    // Load TIFF frames - perfect for scanned documents
    input.LoadImageFrames(@"img\Potter.tiff", pageIndices);

    // Execute OCR to read text from image using IronOCR
    OcrResult result = ocr.Read(input);

    // Output the extracted text
    Console.WriteLine(result.Text);
}
Imports IronOcr

' Initialize IronTesseract for advanced OCR operations
Private ocr As New IronTesseract()

' Create input container for processing multiple images
Using input As New OcrInput()
	' Process specific pages from multi-page TIFF files
	Dim pageIndices() As Integer = { 1, 2 }

	' Load TIFF frames - perfect for scanned documents
	input.LoadImageFrames("img\Potter.tiff", pageIndices)

	' Execute OCR to read text from image using IronOCR
	Dim result As OcrResult = ocr.Read(input)

	' Output the extracted text
	Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Cette configuration permet d'obtenir une précision quasi parfaite sur des scans de qualité moyenne. La méthode LoadImageFrames traite efficacement les documents de plusieurs pages, ce qui la rend idéale pour les scénarios de traitement par lots.


Document TIFF multipage montrant le texte de Harry Potter prêt pour le traitement OCR C#

Exemple de document TIFF démontrant les capacités d'extraction de texte sur plusieurs pages d'IronOCR

La possibilité de lire du texte à partir d'images et de codes-barres dans des documents numérisés tels que des TIFF illustre la manière dont IronOCR simplifie les tâches complexes d'OCR. La bibliothèque excelle avec les documents du monde réel, gérant de manière transparente les TIFF multipages et l'extraction de texte PDF.

Comment IronOCR gère-t-il les scans de faible qualité?


Numérisation de faible qualité avec bruit numérique démontrant les capacités d'amélioration de l'image d'IronOCR

Document basse résolution avec du bruit qu'IronOCR peut traiter avec précision à l'aide de filtres d'image

Lorsque l'on travaille avec des scans imparfaits contenant des distorsions et du bruit numérique, IronOCR surpasse les autres bibliothèques OCR C#. Elle est spécialement conçue pour des scénarios réels plutôt que pour des images de test impeccables.

// Advanced Iron Tesseract C# example for low-quality images
using IronOcr;
using System;

var ocr = new IronTesseract();

try
{
    using (var input = new OcrInput())
    {
        // Load specific pages from poor-quality TIFF
        var pageIndices = new int[] { 0, 1 };
        input.LoadImageFrames(@"img\Potter.LowQuality.tiff", pageIndices);

        // Apply deskew filter to correct rotation and perspective
        input.Deskew(); // Critical for improving accuracy on skewed scans

        // Perform OCR with enhanced preprocessing
        OcrResult result = ocr.Read(input);

        // Display results
        Console.WriteLine("Recognized Text:");
        Console.WriteLine(result.Text);
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error during OCR: {ex.Message}");
}
// Advanced Iron Tesseract C# example for low-quality images
using IronOcr;
using System;

var ocr = new IronTesseract();

try
{
    using (var input = new OcrInput())
    {
        // Load specific pages from poor-quality TIFF
        var pageIndices = new int[] { 0, 1 };
        input.LoadImageFrames(@"img\Potter.LowQuality.tiff", pageIndices);

        // Apply deskew filter to correct rotation and perspective
        input.Deskew(); // Critical for improving accuracy on skewed scans

        // Perform OCR with enhanced preprocessing
        OcrResult result = ocr.Read(input);

        // Display results
        Console.WriteLine("Recognized Text:");
        Console.WriteLine(result.Text);
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error during OCR: {ex.Message}");
}
' Advanced Iron Tesseract C# example for low-quality images
Imports IronOcr
Imports System

Private ocr = New IronTesseract()

Try
	Using input = New OcrInput()
		' Load specific pages from poor-quality TIFF
		Dim pageIndices = New Integer() { 0, 1 }
		input.LoadImageFrames("img\Potter.LowQuality.tiff", pageIndices)

		' Apply deskew filter to correct rotation and perspective
		input.Deskew() ' Critical for improving accuracy on skewed scans

		' Perform OCR with enhanced preprocessing
		Dim result As OcrResult = ocr.Read(input)

		' Display results
		Console.WriteLine("Recognized Text:")
		Console.WriteLine(result.Text)
	End Using
Catch ex As Exception
	Console.WriteLine($"Error during OCR: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

En utilisant Input.Deskew(), la précision s'améliore jusqu'à 99,8 % sur les scans de faible qualité, ce qui correspond presque aux résultats de haute qualité. Cela démontre pourquoi IronOCR est le choix privilégié pour l'OCR en C# sans complications liées à Tesseract.

Les filtres d'image peuvent légèrement augmenter le temps de traitement, mais réduisent considérablement la durée totale de l'OCR. Le bon équilibre dépend de la qualité de votre document.

Pour la plupart des scénarios, Input.Deskew() et Input.DeNoise() apportent des améliorations fiables aux performances de l'OCR. En savoir plus sur les techniques de prétraitement d'images.

Comment optimiser les performances et la vitesse de l'OCR ? Le facteur le plus important affectant la vitesse de l'OCR lorsque vous convertissez des images en texte dans C# est la qualité de l'entrée. Un DPI élevé (~200 dpi) avec un minimum de bruit produit les résultats les plus rapides et les plus précis. Bien qu'IronOCR excelle dans la correction de documents imparfaits, cette amélioration nécessite un temps de traitement supplémentaire. Choisissez des formats d'image avec un minimum d'artefacts de compression. Les formats TIFF et PNG donnent généralement des résultats plus rapides que le format JPEG en raison d'un bruit numérique plus faible.

Quels filtres d'image améliorent la vitesse de l'OCR ? Les filtres suivants peuvent améliorer considérablement les performances de votre flux de travail de conversion d'images en texte par OCR en C# : - **`OcrInput.Rotate(double degrees)`:** Fait pivoter les images dans le sens des aiguilles d'une montre (négatif pour le sens inverse des aiguilles d'une montre) - **`OcrInput.Binarize()`:** Convertit en noir/blanc, améliorant les performances dans les scénarios à faible contraste - **`OcrInput.ToGrayScale()`:** Convertit en niveaux de gris pour des améliorations potentielles de la vitesse - **`OcrInput.Contrast()`:** Ajustement automatique du contraste pour une meilleure précision - **`OcrInput.DeNoise()`:**Supprime les artefacts numériques lorsque du bruit est attendu - **`OcrInput.Invert()`:** Inverser les couleurs pour le texte blanc sur noir - **`OcrInput.Dilate()`:**Elargit les limites du texte - **`OcrInput.Erode()`:**Réduit les limites du texte - **`OcrInput.Deskew()`:**Corrige l'alignement - essentiel pour les documents en biais - **`OcrInput.DeepCleanBackgroundNoise()`:**Elimination agressive du bruit - **`OcrInput.EnhanceResolution`:**Améliore la qualité des images à faible résolution ### Comment configurer IronOCR pour une vitesse maximale ? Utilisez ces paramètres pour optimiser la vitesse de traitement des numérisations de haute qualité : ```csharp using IronOcr; // Configure for speed - ideal for clean documents IronTesseract ocr = new IronTesseract(); // Exclude problematic characters to speed up recognition ocr.Configuration.BlackListCharacters = "~`$#^*_{[]}|\\"; // Use automatic page segmentation ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto; // Select fast English language pack ocr.Language = OcrLanguage.EnglishFast; using (OcrInput input = new OcrInput()) { // Load specific pages from document int[] pageIndices = new int[] { 1, 2 }; input.LoadImageFrames(@"img\Potter.tiff", pageIndices); // Read with optimized settings OcrResult result = ocr.Read(input); Console.WriteLine(result.Text); } ``` Cette configuration optimisée maintient une précision de **99,8 %** tout en améliorant la vitesse de **35 %** par rapport aux paramètres par défaut. ## Comment lire des zones spécifiques d'images à l'aide de C# OCR? L'exemple C# d'Iron Tesseract ci-dessous montre comment cibler des régions spécifiques à l'aide de `System.Drawing.Rectangle`. Cette technique est inestimable pour le traitement de formulaires standardisés où le texte apparaît à des endroits prévisibles. ### L'IronOCR peut-il traiter des régions recadrées pour des résultats plus rapides? En utilisant des coordonnées basées sur les pixels, vous pouvez limiter l'OCR à des zones spécifiques, ce qui améliore considérablement la vitesse et empêche l'extraction de texte indésirable : ```csharp using IronOcr; using IronSoftware.Drawing; // Initialize OCR engine for targeted region processing var ocr = new IronTesseract(); using (var input = new OcrInput()) { // Define exact region for OCR - coordinates in pixels var contentArea = new System.Drawing.Rectangle( x: 215, y: 1250, width: 1335, height: 280 ); // Load image with specific area - perfect for forms and invoices input.AddImage("img/ComSci.png", contentArea); // Process only the defined region OcrResult result = ocr.Read(input); Console.WriteLine(result.Text); } ``` Cette approche ciblée permet une amélioration de la vitesse de 41 % tout en n'extrayant que le texte pertinent. Elle est idéale pour les documents structurés tels que [les factures](/csharp/ocr/blog/using-ironocr/invoice-ocr-csharp-tutorial/), les chèques et les formulaires. La même technique de recadrage fonctionne parfaitement avec [les opérations d'OCR de PDF](/csharp/ocr/how-to/input-pdfs/). [Document d'informatique montrant une extraction de région OCR ciblée en C#](/img/tutorials/how-to-read-text-from-an-image-in-csharp-net/ComSci.png) *Document démontrant l'extraction précise de texte par région à l'aide de la sélection par rectangle d'IronOCR* ## Combien de langues IronOCR prend-il en charge? IronOcr propose **125 langues internationales** grâce à des packs linguistiques pratiques. Téléchargez-les sous forme de DLL depuis notre site web ou via [NuGet Package Manager](https://www.nuget.org/packages?q=IronOcr.Languages). Install language packs through the NuGet interface ([search "IronOcr.Languages"](https://www.nuget.org/packages?q=IronOcr.Languages)) or visit the [complete language pack listing](/csharp/ocr/languages/). Les langues prises en charge sont l'arabe, le chinois (simplifié/traditionnel), le japonais, le coréen, l'hindi, le russe, l'allemand, le français, l'espagnol et plus de 115 autres langues, toutes optimisées pour une reconnaissance de texte précise.

Comment mettre en œuvre l'OCR dans plusieurs langues ? Cet exemple de tutoriel IronOCR C# présente la reconnaissance de texte arabe : ```shell :InstallCmd Install-Package IronOcr.Languages.Arabic ```
Texte arabe traité par IronOCR démontrant la prise en charge de l'OCR multilingue
*IronOcr extrait avec précision du texte arabe d'une image GIF* ```csharp // Install-Package IronOcr.Languages.Arabic using IronOcr; // Configure for Arabic language OCR var ocr = new IronTesseract(); ocr.Language = OcrLanguage.Arabic; using (var input = new OcrInput()) { // Load Arabic text image input.AddImage("img/arabic.gif"); // IronOCR handles low-quality Arabic text that standard Tesseract cannot var result = ocr.Read(input); // Save to file (console may not display Arabic correctly) result.SaveAsTextFile("arabic.txt"); } ``` ### L'IronOCR peut-il traiter des documents contenant plusieurs langues ? Lorsque les documents contiennent des langues mixtes, configurez IronOCR pour une prise en charge multilingue : ```shell :InstallCmd Install-Package IronOcr.Languages.ChineseSimplified ``` ```csharp // Multi-language OCR configuration using IronOcr; var ocr = new IronTesseract(); // Set primary language ocr.Language = OcrLanguage.ChineseSimplified; // Add secondary languages as needed ocr.AddSecondaryLanguage(OcrLanguage.English); // Custom .traineddata files can be added for specialized recognition // ocr.AddSecondaryLanguage("path/to/custom.traineddata"); using (var input = new OcrInput()) { // Process multi-language document input.AddImage("img/MultiLanguage.jpeg"); var result = ocr.Read(input); result.SaveAsTextFile("MultiLanguage.txt"); } ``` ## Comment traiter des documents de plusieurs pages avec C# OCR? IronOcr combine de manière transparente plusieurs pages ou images en un seul `OcrResult`. Cette fonctionnalité permet des fonctions puissantes telles que [la création de PDF consultables](/csharp/ocr/how-to/searchable-pdf/) et l'extraction de texte à partir d'ensembles entiers de documents. Mélangez différentes sources - images, cadres TIFF et pages PDF - en une seule opération d'OCR : ```csharp // Multi-source document processing using IronOcr; IronTesseract ocr = new IronTesseract(); using (OcrInput input = new OcrInput()) { // Add various image formats input.AddImage("image1.jpeg"); input.AddImage("image2.png"); // Process specific frames from multi-frame images int[] frameNumbers = { 1, 2 }; input.AddImageFrames("image3.gif", frameNumbers); // Process all sources together OcrResult result = ocr.Read(input); // Verify page count Console.WriteLine($"{result.Pages.Count} Pages processed."); } ``` Traiter efficacement toutes les pages d'un fichier TIFF : ```csharp using IronOcr; IronTesseract ocr = new IronTesseract(); using (OcrInput input = new OcrInput()) { // Define pages to process (0-based indexing) int[] pageIndices = new int[] { 0, 1 }; // Load specific TIFF frames input.LoadImageFrames("MultiFrame.Tiff", pageIndices); // Extract text from all frames OcrResult result = ocr.Read(input); Console.WriteLine(result.Text); Console.WriteLine($"{result.Pages.Count} Pages processed"); } ``` Convertissez des fichiers TIFF ou PDF en formats consultables : ```csharp using System; using IronOcr; IronTesseract ocr = new IronTesseract(); using (OcrInput input = new OcrInput()) { try { // Load password-protected PDF if needed input.LoadPdf("example.pdf", "password"); // Process entire document OcrResult result = ocr.Read(input); Console.WriteLine(result.Text); Console.WriteLine($"{result.Pages.Count} Pages recognized"); } catch (Exception ex) { Console.WriteLine($"Error processing PDF: {ex.Message}"); } } ```

Comment créer des PDF consultables à partir d'images ? IronOcr excelle dans la création de PDF consultables - une fonctionnalité essentielle pour les systèmes de base de données, l'optimisation du référencement et l'accessibilité des documents. ```csharp using IronOcr; IronTesseract ocr = new IronTesseract(); using (OcrInput input = new OcrInput()) { // Set document metadata input.Title = "Quarterly Report"; // Combine multiple sources input.AddImage("image1.jpeg"); input.AddImage("image2.png"); // Add specific frames from animated images int[] gifFrames = new int[] { 1, 2 }; input.AddImageFrames("image3.gif", gifFrames); // Create searchable PDF OcrResult result = ocr.Read(input); result.SaveAsSearchablePdf("searchable.pdf"); } ``` Convertir des PDF existants en versions consultables : ```csharp using IronOcr; var ocr = new IronTesseract(); using (var input = new OcrInput()) { // Set PDF metadata input.Title = "Annual Report 2024"; // Process existing PDF input.LoadPdf("example.pdf", "password"); // Generate searchable version var result = ocr.Read(input); result.SaveAsSearchablePdf("searchable.pdf"); } ``` Appliquez la même technique aux conversions TIFF : ```csharp using IronOcr; var ocr = new IronTesseract(); using (var input = new OcrInput()) { // Configure document properties input.Title = "Scanned Archive Document"; // Select pages to process var pageIndices = new int[] { 1, 2 }; input.LoadImageFrames("example.tiff", pageIndices); // Create searchable PDF from TIFF OcrResult result = ocr.Read(input); result.SaveAsSearchablePdf("searchable.pdf"); } ``` ## Comment exporter les résultats de l'OCR en HTML HOCR? IronOcr prend en charge l'exportation HTML HOCR, permettant des conversions **PDF vers HTML** et **TIFF vers HTML** structurées tout en préservant les informations de mise en page : ```csharp using IronOcr; var ocr = new IronTesseract(); using (var input = new OcrInput()) { // Set HTML title input.Title = "Document Archive"; // Process multiple document types input.AddImage("image2.jpeg"); input.AddPdf("example.pdf", "password"); // Add TIFF pages var pageIndices = new int[] { 1, 2 }; input.AddTiff("example.tiff", pageIndices); // Export as HOCR with position data OcrResult result = ocr.Read(input); result.SaveAsHocrFile("hocr.html"); } ``` ## L'IronOcr peut-il lire des codes-barres en même temps que du texte ? IronOCR combine de manière unique la reconnaissance de texte avec [des capacités de lecture de codes-barres](/csharp/ocr/how-to/barcodes/), éliminant ainsi le besoin de bibliothèques distinctes : ```csharp // Enable combined text and barcode recognition using IronOcr; var ocr = new IronTesseract(); // Enable barcode detection ocr.Configuration.ReadBarCodes = true; using (var input = new OcrInput()) { // Load image containing both text and barcodes input.AddImage("img/Barcode.png"); // Process both text and barcodes var result = ocr.Read(input); // Extract barcode data foreach (var barcode in result.Barcodes) { Console.WriteLine($"Barcode Value: {barcode.Value}"); Console.WriteLine($"Type: {barcode.Type}, Location: {barcode.Location}"); } } ```

Comment accéder aux résultats détaillés de l'OCR et aux métadonnées ? L'objet de résultats IronOCR fournit des données complètes que les développeurs avancés peuvent exploiter pour des applications sophistiquées. Chaque `OcrResult` contient des collections hiérarchiques : pages, paragraphes, lignes, mots et caractères. Tous les éléments comprennent des métadonnées détaillées telles que l'emplacement, les informations sur les polices de caractères et les indices de confiance. Les éléments individuels (paragraphes, mots, codes-barres) peuvent être exportés sous forme d'images ou de bitmaps pour un traitement ultérieur : ```csharp using System; using IronOcr; using IronSoftware.Drawing; // Configure with barcode support IronTesseract ocr = new IronTesseract { Configuration = { ReadBarCodes = true } }; using OcrInput input = new OcrInput(); // Process multi-page document int[] pageIndices = { 1, 2 }; input.LoadImageFrames(@"img\Potter.tiff", pageIndices); OcrResult result = ocr.Read(input); // Navigate the complete results hierarchy foreach (var page in result.Pages) { // Page-level data int pageNumber = page.PageNumber; string pageText = page.Text; int pageWordCount = page.WordCount; // Extract page elements OcrResult.Barcode[] barcodes = page.Barcodes; AnyBitmap pageImage = page.ToBitmap(); double pageWidth = page.Width; double pageHeight = page.Height; foreach (var paragraph in page.Paragraphs) { // Paragraph properties int paragraphNumber = paragraph.ParagraphNumber; string paragraphText = paragraph.Text; double paragraphConfidence = paragraph.Confidence; var textDirection = paragraph.TextDirection; foreach (var line in paragraph.Lines) { // Line details including baseline information string lineText = line.Text; double lineConfidence = line.Confidence; double baselineAngle = line.BaselineAngle; double baselineOffset = line.BaselineOffset; foreach (var word in line.Words) { // Word-level data string wordText = word.Text; double wordConfidence = word.Confidence; // Font information (when available) if (word.Font != null) { string fontName = word.Font.FontName; double fontSize = word.Font.FontSize; bool isBold = word.Font.IsBold; bool isItalic = word.Font.IsItalic; } foreach (var character in word.Characters) { // Character-level analysis string charText = character.Text; double charConfidence = character.Confidence; // Alternative character choices for spell-checking OcrResult.Choice[] alternatives = character.Choices; } } } } } ``` ## Résumé IronOCR fournit aux développeurs C# la [mise en œuvre de l'API Tesseract](/csharp/ocr/) la plus avancée, fonctionnant de manière transparente sur les plateformes Windows, Linux et Mac. Sa capacité à lire avec précision du texte à partir d'une image à l'aide d'IronOcr - même à partir de documents imparfaits - le distingue des solutions d'OCR de base. Les caractéristiques uniques de la bibliothèque comprennent la lecture intégrée des codes-barres et la possibilité d'exporter les résultats sous forme de PDF consultables ou de HTML HOCR, des capacités indisponibles dans les implémentations standard de Tesseract. ### Aller de l'avant Pour continuer à maîtriser IronOCR : - Découvrez notre [guide de démarrage complet](/csharp/ocr/docs/) - Parcourir [des exemples de code C# pratiques](/csharp/ocr/examples/simple-csharp-ocr-tesseract/) - Référencez la [documentation détaillée de l'API](/csharp/ocr/object-reference/) ### Téléchargement du code source - [Référentiel GitHub](https://github.com/iron-software/IronOcr.Examples/tree/main/src/IronSoftware.IronOCR.Examples/IronSoftware.IronOCR.Examples) - [Télécharger la source complète](/downloads/assets/tutorials/how-to-read-text-from-an-image-in-csharp-net/CSharp-Image-to-Text.zip) Prêt à mettre en œuvre la conversion d'images en texte par OCR en C# dans vos applications ? [Download IronOCR](download-modal) and start your [essai gratuit](trial-license) dès aujourd'hui.

Questions Fréquemment Posées

Comment puis-je convertir des images en texte en C# sans utiliser Tesseract ?

Vous pouvez utiliser IronOCR pour convertir des images en texte en C# sans avoir besoin de Tesseract. IronOCR simplifie le processus avec des méthodes intégrées qui gèrent directement la conversion image-texte.

Comment améliorer la précision de l'OCR sur les images de faible qualité ?

IronOCR fournit des filtres d'image tels que Input.Deskew() et Input.DeNoise() qui peuvent être utilisés pour améliorer les images de faible qualité en corrigeant les distorsions et en réduisant le bruit, améliorant ainsi considérablement la précision de l'OCR.

Quelles sont les étapes pour extraire du texte d'un document multipage en utilisant l'OCR en C# ?

Pour extraire du texte de documents multipages, IronOCR vous permet de charger et traiter chaque page en utilisant des méthodes comme LoadPdf() pour les PDF ou en manipulant les fichiers TIFF, convertissant efficacement chaque page en texte.

Est-il possible de lire simultanément des codes-barres et du texte à partir d'une image ?

Oui, IronOCR peut lire à la fois le texte et les codes-barres à partir d'une seule image. Vous pouvez activer la lecture de codes-barres avec ocr.Configuration.ReadBarCodes = true, ce qui permet l'extraction à la fois des données textuelles et de code-barres.

Comment puis-je configurer l'OCR pour traiter des documents dans plusieurs langues ?

IronOCR prend en charge plus de 125 langues et vous permet de définir une langue principale en utilisant ocr.Language et d'ajouter des langues supplémentaires avec ocr.AddSecondaryLanguage() pour le traitement de documents multilingues.

Quelles méthodes sont disponibles pour exporter les résultats de l'OCR dans différents formats ?

IronOCR offre plusieurs méthodes pour exporter les résultats OCR, telles que SaveAsSearchablePdf() pour les PDF, SaveAsTextFile() pour le texte brut, et SaveAsHocrFile() pour le format HTML HOCR.

Comment puis-je optimiser la vitesse de traitement OCR pour les fichiers image volumineux ?

Pour optimiser la vitesse de traitement OCR, utilisez OcrLanguage.EnglishFast d'IronOCR pour une reconnaissance de langue plus rapide et définissez des régions spécifiques pour l'OCR en utilisant System.Drawing.Rectangle afin de réduire le temps de traitement.

Comment gérer le traitement OCR pour les fichiers PDF protégés ?

Lors de la manipulation de fichiers PDF protégés, utilisez la méthode LoadPdf() avec le bon mot de passe. IronOCR gère les PDF basés sur des images en convertissant automatiquement les pages en images pour le traitement de l'OCR.

Que dois-je faire si les résultats de l'OCR ne sont pas précis ?

Si les résultats de l'OCR sont inexacts, envisagez d'utiliser les fonctionnalités d'amélioration d'image d'IronOCR comme Input.Deskew() et Input.DeNoise(), et assurez-vous que les packs linguistiques corrects sont installés.

Puis-je personnaliser le processus OCR pour exclure certains caractères ?

Oui, IronOCR permet la personnalisation du processus OCR en utilisant la propriété BlackListCharacters pour exclure certains caractères, améliorant la précision et la vitesse de traitement en se concentrant uniquement sur le texte pertinent.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur technique chez Iron Software et un ingénieur visionnaire pionnier dans la technologie des PDF en C#. En tant que développeur original derrière la base de code principale d'Iron Software, il a façonné l'architecture du produit de l'entreprise depuis sa création, ...

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,044,537 | Version : 2025.11 vient de sortir