Mise à jour février 17, 2025
Partager:

Comment lire des documents spécifiques

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

par Chaknith Bin

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 singulière générale. Ces défis découlent de la diversité des formats, des mises en page et du contenu de chaque type de document, ainsi que des variations de la qualité de l'image, de la distorsion et du contenu spécialisé. En outre, la compréhension du contexte et l'équilibre entre performance et efficacité deviennent plus complexes avec un éventail plus large de types de documents.

IronOCR présente des méthodes spécifiques pour effectuer l'OCR sur des documents particuliers tels que des documents textuels standard, des plaques d'immatriculation, des passeports et des photos afin d'obtenir une précision et des performances optimales.

Commencez avec IronOCR

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

Première étape :
green arrow pointer



À propos du paquet

Les méthodes ReadLicensePlate, ReadPassport, ReadPhoto, et ReadScreenShot sont des méthodes d'extension pour le paquet de base IronOCR et nécessitent l'installation du paquet IronOcr.Extensions.AdvancedScan. Actuellement, cette extension n'est disponible que sous Windows.

Les méthodes fonctionnent avec des configurations de moteur OCR telles que la liste noire et la liste blanche. Plusieurs langues, y compris le chinois, le japonais, le coréen et l'alphabet latin, sont prises en charge dans toutes les méthodes sauf pour la méthode ReadPassport. Veuillez noter que chaque langue nécessite un package de langue supplémentaire, IronOcr.Languages.

L'utilisation de l'analyse avancée sur le Framework .NET nécessite que le projet soit exécuté sur une architecture x64. Naviguez vers la configuration du projet et décochez l'option "Prefer 32-bit" pour y parvenir. Découvrez-en plus dans le guide de dépannage suivant : "Advanced Scan on .NET Framework."

Lire l'exemple de document

La méthode ReadDocument est une méthode de lecture de documents robuste qui se spécialise dans les documents numérisés ou les photos de documents en papier contenant beaucoup de texte. La configuration PageSegmentationMode est très importante pour la lecture de documents texte avec différents agencements. Par exemple, les types SingleBlock et SparseText pourraient extraire beaucoup d'informations de la disposition des tables. C'est parce que 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 de base IronOCR et nécessitent l'installation du package IronOcr.Extensions.AdvancedScan. Actuellement, cette extension n'est disponible que sous Windows.

Lire l'exemple de la plaque d'immatriculation

La méthode ReadLicensePlate est optimisée pour lire les plaques d'immatriculation à partir de photos. Les informations spéciales renvoyées par cette méthode sont la propriété Licenseplate, qui contient les informations de 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

Lire l'exemple de passeport

La méthode ReadPassport est optimisée pour la lecture et extrait les informations du passeport à partir des photos du 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 MRZ 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

Veillez à ce que le document ne contienne que l'image du passeport. Tout texte d'en-tête et de pied de page pourrait perturber la méthode et produire un résultat inattendu.

Lire l'exemple de la photo

La méthode ReadPhoto est optimisée pour lire des 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].FrameNumber;
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).FrameNumber
Dim textinregion As String = result.TextRegions(0).TextInRegion
Dim region As Rectangle = result.TextRegions(0).Region
$vbLabelText   $csharpLabel

Lire l'exemple de la capture d'écran

La méthode ReadScreenShot est optimisée pour lire les captures d'écran contenant du texte difficile à lire. Similaire à la méthode ReadPhoto, elle retourne é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
Chaknith Bin

Chaknith Bin

Ingénieur logiciel

 LinkedIn

Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.