Comment extraire des résultats de lecture en C# ; avec IronOCR
La méthode Read d'IronOCR renvoie un objet OcrResult contenant le texte extrait ainsi que des métadonnées détaillées, notamment les coordonnées précises, les dimensions, la direction du texte et la structure hiérarchique (paragraphes, lignes, mots, caractères) pour chaque élément détecté.
Le résultat de l'OCR contient des informations complètes sur les paragraphes, les lignes, les mots et les caractères individuels détectés.
Pour chaque élément, elle fournit le contenu textuel, les coordonnées X et Y précises, les dimensions (largeur et hauteur), la direction du texte (de gauche à droite ou de haut en bas) et l'emplacement dans un objet CropRectangle.
Démarrage rapide : Récupérer le texte de mot à partir du premier mot détecté
Utilisez la méthode IronTesseract de Read pour effectuer une OCR sur une image et extraire le texte du premier mot à l'aide de la collection Words.
-
Installez IronOCR avec le Gestionnaire de Packages NuGet
PM > Install-Package IronOcr -
Copiez et exécutez cet extrait de code.
string wordText = new IronTesseract().Read("file.jpg").Words[0].Text; -
Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit
Flux de travail minimal (5 étapes)
- Téléchargez une bibliothèque C# pour accéder aux résultats de lecture
- Préparez l'image cible et le document PDF
- Utilisez la méthode
Readpour effectuer la reconnaissance optique de caractères (OCR) sur le document importé. - Accédez aux
X,Y,largeur,hauteur, etdirection du textedu résultat - Vérifiez les paragraphes détectés, les lignes, les mots et les comparaisons de caractères
Quelles données puis-je extraire des résultats de l'OCR ?
La valeur du résultat contient non seulement le texte extrait, mais aussi des informations sur les pages, les paragraphes, les lignes, les mots, les caractères et les codes-barres découverts dans les documents PDF et les documents image par IronOCR. Vous pouvez accéder à ces informations à partir de l'objet OcrResult renvoyé à l'aide de la méthode Read.
Le système de résultats complet d'IronOcr s'appuie sur le puissant moteur Tesseract 5, offrant aux développeurs des capacités d'extraction de données structurées allant au-delà de la simple reconnaissance de texte. Que vous traitiez des documents numérisés, des photos ou des captures d'écran, la classe OcrResult vous offre un contrôle précis sur les données extraites.
:path=/static-assets/ocr/content-code-examples/how-to/read-results-output-information.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;
// Output information to console
Console.WriteLine($"Text: {paragraphs[0].Text}");
Console.WriteLine($"X: {paragraphs[0].X}");
Console.WriteLine($"Y: {paragraphs[0].Y}");
Console.WriteLine($"Width: {paragraphs[0].Width}");
Console.WriteLine($"Height: {paragraphs[0].Height}");
Console.WriteLine($"Text direction: {paragraphs[0].TextDirection}");
Imports IronOcr
Imports System
Imports IronOcr.OcrResult
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Add image
Private imageInput = New OcrImageInput("sample.jpg")
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Retrieve list of detected paragraphs
Private paragraphs() As Paragraph = ocrResult.Paragraphs
' Output information to console
Console.WriteLine($"Text: {paragraphs(0).Text}")
Console.WriteLine($"X: {paragraphs(0).X}")
Console.WriteLine($"Y: {paragraphs(0).Y}")
Console.WriteLine($"Width: {paragraphs(0).Width}")
Console.WriteLine($"Height: {paragraphs(0).Height}")
Console.WriteLine($"Text direction: {paragraphs(0).TextDirection}")
Comment accéder au contenu textuel des résultats de l'OCR?
L'objet OcrResult présente le texte extrait de manière simple et intuitive, permettant aux développeurs de l'utiliser directement ou de l'intégrer dans d'autres composants d'application. La structure hiérarchique reflète l'organisation naturelle du texte du document, ce qui facilite le travail avec le contenu à différents niveaux de granularité.
Pour les applications nécessitant une prise en charge de plusieurs langues, IronOCR gère de manière transparente les documents multilingues, en conservant le même format de résultat structuré dans les 125 langues prises en charge.
L'exemple de code suivant imprime du texte dans une boucle pour vérifier les résultats.
:path=/static-assets/ocr/content-code-examples/how-to/read-results-output-text.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("sampleText.png");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;
// Loop through each paragraph in the array
Console.WriteLine("--- All Detected Paragraphs ---");
foreach (Paragraph paragraph in paragraphs)
{
// Print the text of the current paragraph
Console.WriteLine(paragraph.Text);
// Add a blank line for better separation (optional)
Console.WriteLine();
}
Imports IronOcr
Imports System
Imports IronOcr.OcrResult
' Instantiate IronTesseract
Dim ocrTesseract As New IronTesseract()
' Add image
Using imageInput As New OcrImageInput("sampleText.png")
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Retrieve list of detected paragraphs
Dim paragraphs As Paragraph() = ocrResult.Paragraphs
' Loop through each paragraph in the array
Console.WriteLine("--- All Detected Paragraphs ---")
For Each paragraph As Paragraph In paragraphs
' Print the text of the current paragraph
Console.WriteLine(paragraph.Text)
' Add a blank line for better separation (optional)
Console.WriteLine()
Next
End Using
Sortie
La sortie de la console montre qu'IronOCR extrait le texte du paragraphe ligne par ligne avec précision. Le moteur détecte automatiquement les limites des paragraphes, ce qui le rend idéal pour le traitement de documents complexes comportant plusieurs blocs de texte.
Comment obtenir les coordonnées de l'emplacement du texte détecté?
En plus du texte extrait, le OcrResult fournit des données de localisation détaillées. Ces informations spatiales sont cruciales pour les applications qui doivent maintenir la fidélité de la mise en page ou effectuer une extraction de texte ciblée à partir de régions spécifiques du document. Le système de coordonnées utilise des mesures standard en pixels à partir du coin supérieur gauche de la page.
Pour améliorer la précision des opérations basées sur les coordonnées, envisagez d'utiliser OCR region targeting pour vous concentrer sur des zones spécifiques, ou exploitez Computer Vision capabilities pour identifier automatiquement les zones de texte.
Le code suivant montre comment itérer sur chaque paragraphe et imprimer ses coordonnées (X et Y) sur la console.
:path=/static-assets/ocr/content-code-examples/how-to/read-results-output-coordinates.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("sampleText.png");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;
Console.WriteLine("--- All Detected Coordinates of Paragraphs ---");
// Use a 'for' loop to get an index for each paragraph
for (int i = 0; i < paragraphs.Length; i++)
{
// Get the current paragraph
Paragraph paragraph = paragraphs[i];
// Print the paragraph number, text, and its location
Console.WriteLine($"X: {paragraph.X}"); // X-coordinate (left edge)
Console.WriteLine($"Y: {paragraph.Y}"); // Y-coordinate (top edge)
// Add a blank line for better separation
Console.WriteLine();
}
Imports IronOcr
Imports System
Imports IronOcr.OcrResult
' Instantiate IronTesseract
Dim ocrTesseract As New IronTesseract()
' Add image
Using imageInput As New OcrImageInput("sampleText.png")
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Retrieve list of detected paragraphs
Dim paragraphs As Paragraph() = ocrResult.Paragraphs
Console.WriteLine("--- All Detected Coordinates of Paragraphs ---")
' Use a 'for' loop to get an index for each paragraph
For i As Integer = 0 To paragraphs.Length - 1
' Get the current paragraph
Dim paragraph As Paragraph = paragraphs(i)
' Print the paragraph number, text, and its location
Console.WriteLine($"X: {paragraph.X}") ' X-coordinate (left edge)
Console.WriteLine($"Y: {paragraph.Y}") ' Y-coordinate (top edge)
' Add a blank line for better separation
Console.WriteLine()
Next
End Using
Sortie
Le résultat montre trois ensembles de coordonnées correspondant à trois paragraphes. Ces coordonnées peuvent être utilisées pour dessiner des boîtes de délimitation, extraire des régions spécifiques ou maintenir des relations spatiales entre des éléments de texte.
Quels sont les autres attributs disponibles dans les résultats de l'OCR ?
Outre le texte et les coordonnées du texte, IronOCR fournit des informations supplémentaires. Pour chaque élément de texte (paragraphes, lignes, mots et caractères individuels), les informations suivantes sont disponibles :
- Texte : le texte proprement dit sous forme de chaîne de caractères.
- X : Position en pixels à partir du bord gauche de la page.
- Y : la position à partir du bord supérieur de la page, en pixels.
- Largeur : la largeur en pixels.
- Hauteur : la hauteur en pixels.
- Sens de lecture : le sens dans lequel le texte a été lu (de gauche à droite ou de haut en bas).
- Emplacement : un rectangle indiquant l'emplacement de ce texte sur la page en pixels.
Ces attributs sont particulièrement utiles lors de la mise en œuvre :
- Systèmes de surlignage de texte et d'annotation
- Détection automatisée des champs de formulaire
- Préservation de la mise en page lors de la conversion de documents
- Analyse de textes spatiaux pour l'extraction de données
Pour le débogage et la visualisation, utilisez la fonction highlight texts pour vérifier visuellement l'exactitude des régions détectées.
Comment les paragraphes, les lignes, les mots et les caractères se comparent-ils?
La structure hiérarchique du texte d'IronOCR permet aux développeurs de travailler au niveau de détail approprié pour leur cas d'utilisation spécifique. Comprendre les différences entre ces éléments permet de choisir la bonne granularité pour votre application.
Vous trouverez ci-dessous la comparaison des paragraphes, lignes, mots et caractères détectés.
Paragraphe |
Doubler |
Word |
Personnage |
Chaque niveau de granularité répond à des objectifs différents :
- Paragraphees : idéal pour l'analyse de la structure des documents et l'extraction de textes en vrac
- Lignes : Utile pour maintenir l'ordre de lecture et traiter les données tabulaires
- Mots : Idéal pour les fonctions de recherche et d'analyse de texte
- Personnages : Parfaits pour les applications de vérification orthographique et d'édition de textes précis
L'IronOCR peut-il lire les BarCodes et les QR Codes?
Oui, IronOCR peut lire les codes-barres et les codes QR. Bien que cette fonctionnalité ne soit pas aussi robuste qu'IronBarcode, IronOCR prend en charge les types de codes-barres courants. Pour activer la détection des codes-barres, définissez la propriété Configuration.ReadBarCodes sur true. Cette fonctionnalité intégrée fait d'IronOCR un excellent choix pour le traitement de documents contenant à la fois du texte et des codes-barres, tels que des factures, des étiquettes d'expédition ou des catalogues de produits.
De plus, des informations utiles peuvent être extraites des BARCODES détectés, notamment le format, la valeur, les coordonnées (x, y), la hauteur, la largeur et l'emplacement sous la forme d'un objet IronSoftware.Drawing.Rectangle. Cette classe Rectangle d' IronDrawing permet un positionnement précis sur le document.
Pour des scénarios de lecture de codes-barres plus avancés, consultez les exemples de lecture de codes-barres complets dans notre documentation.
:path=/static-assets/ocr/content-code-examples/how-to/read-results-barcodes.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Enable barcodes detection
ocrTesseract.Configuration.ReadBarCodes = true;
// Add image
using OcrInput ocrInput = new OcrInput();
ocrInput.LoadPdf("sample.pdf");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
// Output information to console
foreach(var barcode in ocrResult.Barcodes)
{
Console.WriteLine("Format = " + barcode.Format);
Console.WriteLine("Value = " + barcode.Value);
Console.WriteLine("X = " + barcode.X);
Console.WriteLine("Y = " + barcode.Y);
}
Console.WriteLine(ocrResult.Text);
Imports IronOcr
Imports System
Imports IronOcr.OcrResult
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Enable barcodes detection
ocrTesseract.Configuration.ReadBarCodes = True
' Add image
Using ocrInput As New OcrInput()
ocrInput.LoadPdf("sample.pdf")
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
' Output information to console
For Each barcode In ocrResult.Barcodes
Console.WriteLine("Format = " & barcode.Format)
Console.WriteLine("Value = " & barcode.Value)
Console.WriteLine("X = " & barcode.X)
Console.WriteLine("Y = " & barcode.Y)
Next barcode
Console.WriteLine(ocrResult.Text)
End Using
À quoi ressemble la sortie de la détection de BarCode?
La fonction de détection des codes-barres dans IronOcr s'intègre de manière transparente à l'extraction de texte, fournissant des résultats unifiés incluant à la fois le contenu textuel et les données des codes-barres. Cette double capacité est précieuse pour les flux de traitement automatisé de documents où les deux types d'informations doivent être extraits et corrélés.
La sortie démontre la capacité d'IronOCR à détecter simultanément plusieurs types de codes-barres, en fournissant l'identification du format (tel que QRCode ou EAN8), les valeurs décodées et des informations précises sur les coordonnées pour chaque code détecté. Ces données complètes permettent aux développeurs de créer des applications de traitement de documents sophistiquées qui gèrent efficacement des types de contenu mixtes.
Questions Fréquemment Posées
Quelles sont les informations contenues dans l'objet OcrResult ?
L'objet OcrResult d'IronOcr contient le texte extrait ainsi que des métadonnées détaillées, notamment des coordonnées X/Y précises, des dimensions (largeur et hauteur), la direction du texte (de gauche à droite ou de haut en bas) et la structure hiérarchique organisée en paragraphes, lignes, mots et caractères individuels pour chaque élément détecté.
Comment puis-je extraire rapidement le premier mot d'un résultat d'OCR ?
Vous pouvez extraire le texte du premier mot en utilisant la méthode Read d'IronOCR et en accédant à la collection Words : `string wordText = new IronTesseract().Read("file.jpg").Words[0].Text;`. Cela permet d'accéder instantanément à des éléments de mots individuels à partir des résultats de l'OCR.
Quels types de données de coordonnées sont disponibles dans les résultats de l'OCR ?
IronOcr fournit des coordonnées X et Y précises pour chaque élément détecté (paragraphes, lignes, mots et caractères), ainsi que les dimensions de largeur et de hauteur. Ces coordonnées sont accessibles par le biais de l'objet CropRectangle, ce qui permet un suivi précis de l'emplacement des éléments de texte.
Puis-je extraire des métadonnées au-delà du simple contenu textuel ?
Oui, IronOcr extrait des métadonnées complètes, notamment les pages, les paragraphes, les lignes, les mots, les caractères et même les codes-barres découverts dans les documents PDF et les images. L'objet OcrResult donne accès à la direction du texte, à la structure hiérarchique et aux informations spatiales pour chaque élément.
Quels types de documents peuvent être traités pour obtenir des résultats d'OCR ?
IronOCR peut traiter différents types de documents, notamment des documents numérisés, des photos, des captures d'écran, des PDF et des fichiers image. La méthode Read fonctionne de manière cohérente dans tous ces formats, renvoyant le même objet OcrResult structuré avec des métadonnées complètes.
Comment le texte extrait est-il organisé dans les résultats ?
IronOCR organise le texte extrait dans une structure hiérarchique qui reflète l'organisation naturelle des documents. L'objet OcrResult présente le contenu à différents niveaux de granularité - des pages entières aux caractères individuels - ce qui facilite le travail avec le texte au niveau approprié pour votre application.
IronOCR peut-il être intégré dans des applications existantes ?
IronOCR est conçu pour être facilement intégré dans les applications existantes en utilisant C#, permettant aux développeurs d'ajouter des fonctionnalités OCR à leur logiciel avec un minimum d'effort.
Quels sont les avantages d'utiliser IronOCR pour la gestion des documents ?
Utiliser IronOCR pour la gestion des documents rationalise le flux de travail en convertissant les documents numérisés en texte modifiable et consultable, réduisant le besoin de saisie manuelle des données et améliorant l'accessibilité des documents.
Comment IronOCR peut-il améliorer la précision des données ?
IronOCR améliore la précision des données grâce à ses algorithmes de reconnaissance avancés et ses fonctionnalités de correction d'image, garantissant que le processus d'extraction de texte est à la fois fiable et précis.
Y a-t-il un essai gratuit disponible pour IronOCR ?
Oui, Iron Software propose un essai gratuit d'IronOCR, permettant aux utilisateurs de tester ses fonctionnalités et capacités avant de prendre une décision d'achat.

