Comment lire des documents spécifiques en utilisant l'OCR en C#

Comment lire des documents spécialisés avec C# et IronOCR

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

Il est très difficile de lire avec précision des documents spécifiques tels que des documents textuels standard, des plaques d'immatriculation, des passeports et des photos à l'aide d'une méthode générale et unique. Ces difficultés découlent de la diversité des formats, des mises en page et du contenu de chaque type de document, ainsi que des variations de qualité d'image, de distorsion et de contenu spécialisé. De plus, parvenir à une compréhension contextuelle et à un équilibre entre performance et efficacité devient plus complexe avec un éventail plus large de types de documents.

IronOCR introduit des méthodes spécifiques pour effectuer la reconnaissance optique de caractères (OCR) sur des documents particuliers tels que des documents texte standard, des plaques d'immatriculation, des passeports et des photos afin d'obtenir une précision et des performances optimales.

Démarrage rapide : Lire un passeport en une ligne

Utilisez l'extension ReadPassport d'IronOCR pour extraire toutes les informations essentielles de votre passeport en toute simplicité. Une seule ligne de code suffit (après avoir installé IronOCR et AdvancedScan) pour obtenir rapidement et facilement des données structurées telles que le nom, le numéro de passeport, le pays, etc.

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().ReadPassport(new OcrInput().LoadImage("passport.jpg"));
  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


À propos du colis

Les méthodes ReadLicensePlate , ReadPassport , ReadPhoto et ReadScreenShot sont des méthodes d'extension du package IronOCR de base et nécessitent l'installation du package IronOcr.Extensions.AdvancedScan .

Ces méthodes fonctionnent avec des configurations de moteur OCR telles que les listes noires et blanches. Plusieurs langues, dont le chinois, le japonais, le coréen et l'alphabet latin, sont prises en charge par toutes les méthodes, à l'exception de ReadPassport . Veuillez noter que chaque langue nécessite un module linguistique supplémentaire, IronOCR.Languages .

L'utilisation de l'analyse avancée sur .NET Framework nécessite que le projet s'exécute sur une architecture x64. Pour ce faire, accédez à la configuration du projet et décochez l'option " Préférer 32 bits ". Pour en savoir plus, consultez le guide de dépannage suivant : " Analyse avancée sur .NET Framework ".

Lire un exemple de document

La méthode ReadDocument est une méthode de lecture de documents robuste, spécialisée dans les documents numérisés ou les photos de documents papier contenant beaucoup de texte. La configuration PageSegmentationMode est très importante pour la lecture de documents texte présentant différentes mises en page.

Par exemple, les types SingleBlock et SparseText peuvent extraire de nombreuses informations de la mise en page du tableau. En effet, SingleBlock suppose que le texte reste sous forme de bloc, tandis que SparseText suppose que le texte est dispersé dans tout le document.

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-document.cs
using IronOcr;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

// Configure OCR engine
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;

using var input = new OcrInput();

input.LoadPdf("Five.pdf");

// Perform OCR
OcrResult result = ocr.ReadDocument(input);

Console.WriteLine(result.Text);
Imports IronOcr
Imports System

' Instantiate OCR engine
Private ocr = New IronTesseract()

' Configure OCR engine
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock

Dim input = New OcrInput()

input.LoadPdf("Five.pdf")

' Perform OCR
Dim result As OcrResult = ocr.ReadDocument(input)

Console.WriteLine(result.Text)
$vbLabelText   $csharpLabel

Les méthodes ci-dessous sont des méthodes d'extension du package IronOCR de base et nécessitent l'installation du package IronOCR.Extensions.AdvancedScan .

Exemple de lecture de plaque d'immatriculation

La méthode ReadLicensePlate est optimisée pour la lecture des plaques d'immatriculation à partir de photos. L'information particulière renvoyée par cette méthode est la propriété Licenseplate , qui contient les informations relatives à l'emplacement de la plaque d'immatriculation dans le document fourni.

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-license-plate.cs
using IronOcr;
using IronSoftware.Drawing;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputLicensePlate = new OcrInput();

inputLicensePlate.LoadImage("LicensePlate.jpeg");

// Perform OCR
OcrLicensePlateResult result = ocr.ReadLicensePlate(inputLicensePlate);

// Retrieve license plate coordinates
Rectangle rectangle = result.Licenseplate;

// Retrieve license plate value
string output = result.Text;
Imports IronOcr
Imports IronSoftware.Drawing
Imports System

' Instantiate OCR engine
Private ocr = New IronTesseract()

Private inputLicensePlate = New OcrInput()

inputLicensePlate.LoadImage("LicensePlate.jpeg")

' Perform OCR
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(inputLicensePlate)

' Retrieve license plate coordinates
Dim rectangle As Rectangle = result.Licenseplate

' Retrieve license plate value
Dim output As String = result.Text
$vbLabelText   $csharpLabel

Exemple de passeport

La méthode ReadPassport est optimisée pour lire et extraire les informations du passeport à partir de photos de passeport en scannant le contenu de la zone lisible par machine (MRZ). Une MRZ est une zone spécialement définie dans les documents officiels tels que les passeports, les cartes d'identité et les visas. La ZMR contient généralement des informations personnelles essentielles, telles que le nom du titulaire, sa date de naissance, sa nationalité et le numéro du document. Actuellement, cette méthode ne prend en charge que la langue anglaise.

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-passport.cs
using IronOcr;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputPassport = new OcrInput();

inputPassport.LoadImage("Passport.jpg");

// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);

// Output passport information
Console.WriteLine(result.PassportInfo.GivenNames);
Console.WriteLine(result.PassportInfo.Country);
Console.WriteLine(result.PassportInfo.PassportNumber);
Console.WriteLine(result.PassportInfo.Surname);
Console.WriteLine(result.PassportInfo.DateOfBirth);
Console.WriteLine(result.PassportInfo.DateOfExpiry);
Imports IronOcr
Imports System

' Instantiate OCR engine
Private ocr = New IronTesseract()

Private inputPassport = New OcrInput()

inputPassport.LoadImage("Passport.jpg")

' Perform OCR
Dim result As OcrPassportResult = ocr.ReadPassport(inputPassport)

' Output passport information
Console.WriteLine(result.PassportInfo.GivenNames)
Console.WriteLine(result.PassportInfo.Country)
Console.WriteLine(result.PassportInfo.PassportNumber)
Console.WriteLine(result.PassportInfo.Surname)
Console.WriteLine(result.PassportInfo.DateOfBirth)
Console.WriteLine(result.PassportInfo.DateOfExpiry)
$vbLabelText   $csharpLabel

Résultat

Lire le passeport

Veuillez vous assurer que le document ne contient que l'image du passeport. Tout texte d'en-tête ou de pied de page pourrait perturber la méthode et entraîner un résultat inattendu.

Lire l'exemple de photo

La méthode ReadPhoto est optimisée pour la lecture d'images contenant du texte difficile à lire. Cette méthode renvoie la propriété TextRegions , qui contient des informations utiles sur le texte détecté, telles que Region , TextInRegion et FrameNumber .

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-photo.cs
using IronOcr;
using IronSoftware.Drawing;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputPhoto = new OcrInput();
inputPhoto.LoadImageFrame("photo.tif", 2);

// Perform OCR
OcrPhotoResult result = ocr.ReadPhoto(inputPhoto);

// index number refer to region order in the page
int number = result.TextRegions[0].PageNumber;
string textinregion = result.TextRegions[0].TextInRegion;
Rectangle region = result.TextRegions[0].Region;
Imports IronOcr
Imports IronSoftware.Drawing

' Instantiate OCR engine
Private ocr = New IronTesseract()

Private inputPhoto = New OcrInput()
inputPhoto.LoadImageFrame("photo.tif", 2)

' Perform OCR
Dim result As OcrPhotoResult = ocr.ReadPhoto(inputPhoto)

' index number refer to region order in the page
Dim number As Integer = result.TextRegions(0).PageNumber
Dim textinregion As String = result.TextRegions(0).TextInRegion
Dim region As Rectangle = result.TextRegions(0).Region
$vbLabelText   $csharpLabel

Lire l'exemple de capture d'écran

La méthode ReadScreenShot est optimisée pour la lecture de captures d'écran contenant du texte difficile à lire. À l'instar de la méthode ReadPhoto, elle renvoie également la propriété TextRegions .

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-screenshot.cs
}
using IronOcr;
using System;
using System.Linq;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputScreenshot = new OcrInput();
inputScreenshot.LoadImage("screenshot.png");

// Perform OCR
OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot);

// Output screenshoot information
Console.WriteLine(result.Text);
Console.WriteLine(result.TextRegions.First().Region.X);
Console.WriteLine(result.TextRegions.Last().Region.Width);
Console.WriteLine(result.Confidence);
}
Imports IronOcr
Imports System
Imports System.Linq

' Instantiate OCR engine
Private ocr = New IronTesseract()

Private inputScreenshot = New OcrInput()
inputScreenshot.LoadImage("screenshot.png")

' Perform OCR
Dim result As OcrPhotoResult = ocr.ReadScreenShot(inputScreenshot)

' Output screenshoot information
Console.WriteLine(result.Text)
Console.WriteLine(result.TextRegions.First().Region.X)
Console.WriteLine(result.TextRegions.Last().Region.Width)
Console.WriteLine(result.Confidence)
}
$vbLabelText   $csharpLabel

Questions Fréquemment Posées

Comment puis-je lire des plaques d'immatriculation en utilisant l'OCR en C# ?

Vous pouvez utiliser la méthode ReadLicensePlate fournie par IronOCR pour lire précisément les plaques d'immatriculation sur des photos. Cette méthode renvoie le texte de la plaque d'immatriculation et ses détails de localisation.

Quelle est la meilleure façon d'extraire des informations à partir de photos de passeports ?

La méthode ReadPassport d'IronOCR est conçue pour scanner la zone lisible par machine (MRZ) dans les photos de passeports, en extrayant des informations essentielles telles que le nom, la date de naissance et le numéro de document.

IronOCR peut-il lire du texte à partir de photos avec du texte difficile ?

Oui, la méthode ReadPhoto dans IronOCR est optimisée pour lire les images avec du texte difficile à lire, fournissant des données détaillées sur le texte détecté et ses régions.

Est-il possible d'utiliser IronOCR pour lire du texte à partir de captures d'écran ?

Absolument, la méthode ReadScreenShot d'IronOCR est spécifiquement optimisée pour traiter le texte dans des captures d'écran, et elle fournit des informations détaillées sur les régions de texte.

Comment puis-je améliorer la précision de l'OCR pour les documents avec des mises en page complexes ?

Pour améliorer la précision de l'OCR pour les mises en page complexes des documents, configurez le PageSegmentationMode dans IronOCR. Des options comme SingleBlock et SparseText sont particulièrement utiles pour extraire des informations à partir de dispositions tabelaires.

Que dois-je faire si les fonctionnalités de scan avancées d'IronOCR ne fonctionnent pas sur mon projet .NET Framework ?

Assurez-vous que votre projet est configuré pour s'exécuter sur l'architecture x64 en décochant l'option 'Préférer le 32 bits' dans les paramètres de votre projet pour résoudre les problèmes avec les fonctions de scan avancées dans IronOCR sur .NET Framework.

Y a-t-il des limitations de support linguistique dans IronOCR ?

IronOCR prend en charge plusieurs langues, y compris le chinois, le japonais, le coréen et l'alphabet latin. Cependant, la méthode ReadPassport ne prend actuellement en charge que les documents en anglais.

Qu'est-ce que j'ai besoin pour utiliser les fonctionnalités de numérisation avancées dans IronOCR ?

Pour utiliser les fonctionnalités de numérisation avancées dans IronOCR, le package IronOcr.Extensions.AdvancedScan est requis, qui est disponible exclusivement sur Windows.

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
Prêt à commencer?
Nuget Téléchargements 5,167,857 | Version: 2025.11 vient de sortir