Comment lire les plaques d'immatriculation en OCR C#

Comment lire les plaques d'immatriculation en C# ; avec IronOCR

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

La méthode ReadLicensePlate d'IronOcr extrait automatiquement les numéros de plaque d'immatriculation des images de véhicules à l'aide d'une technologie OCR avancée. Cet appel de méthode unique peut traiter les plaques d'immatriculation avec une grande précision, renvoyant à la fois le texte de la plaque et le score de confiance pour les systèmes de gestion automatisée des véhicules.

Lors de la gestion d'un grand volume d'images de véhicules, la lecture manuelle des plaques d'immatriculation est fastidieuse et sujette aux erreurs humaines. L'automatisation de ce processus à l'aide d'un outil comme IronOCR offre une solution plus efficace et plus précise. La méthode ReadLicensePlate d'IronOcr peut extraire par programme les numéros de plaques d'immatriculation à partir d'images, ce qui permet de gagner un temps considérable tout en améliorant la précision des données.

Dans ce guide, nous montrerons comment utiliser IronOcr pour la reconnaissance des plaques d'immatriculation, en parcourant des exemples et des configurations personnalisables qui rendent le processus transparent. En exploitant ces méthodes, les développeurs peuvent automatiser la lecture des plaques d'immatriculation, rendant ainsi plus efficaces des tâches telles que la gestion des parkings, la perception des péages ou la surveillance de sécurité.

Pour utiliser cette fonction, vous devez également installer le package IronOcr.Extension.AdvancedScan .

Démarrage rapide : Extraire instantanément le numéro de plaque d'immatriculation

Avec un seul appel de méthode utilisant le ReadLicensePlate d'IronOcr, vous pouvez extraire par programme le texte de la plaque d'immatriculation à partir de n'importe quelle image. Le logiciel est prêt à l'emploi : il suffit de charger une image, d'appeler la méthode et d'obtenir immédiatement le numéro de la plaque et le degré de confiance.

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.

    OcrLicensePlateResult result = new IronTesseract().ReadLicensePlate(new OcrInput("plate.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

Comment lire une plaque d'immatriculation en C#?

Pour lire une plaque d'immatriculation en IronOcr, nous appliquons les étapes suivantes :

  • Nous utilisons la méthode ReadLicensePlate, qui prend un OcrInput comme paramètre pour l'entrée. Cette méthode est plus optimisée pour les plaques d'immatriculation que l'homologue standard Read de la bibliothèque.
  • En option, nous pouvons configurer IronOcr pour mettre sur liste blanche des caractères spécifiques pouvant exister dans une plaque d'immatriculation, afin d'accélérer le traitement des numéros de plaques d'immatriculation.

[{i:(

  • La méthode ne fonctionne actuellement que pour l'anglais, le chinois, le japonais, le coréen et les alphabets latins.
  • L'utilisation de l'analyse avancée sur .NET Framework nécessite que le projet s'exécute sur une architecture x64.
    @@--BRACKET-FERMETURE--@@

À quoi ressemble la plaque d'immatriculation de l'entrée ?

Plaque d'immatriculation californienne affichant '8TRS777' - exemple de démonstration de lecture de plaque d'immatriculation

Comment configurer l'OCR pour les plaques d'immatriculation?

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

var ocr = new IronTesseract();
ocr.Configuration.WhiteListCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";

using var inputLicensePlate = new OcrInput();
inputLicensePlate.LoadImage("plate.jpeg");

// Read license plate
OcrLicensePlateResult result = ocr.ReadLicensePlate(inputLicensePlate);

// Retrieve license plate number and confidence value
string output = $"{result.Text}\nResult Confidence: {result.Confidence}";

Console.WriteLine(output);
$vbLabelText   $csharpLabel

Quels sont les résultats auxquels je peux m'attendre ?

Console de débogage affichant les résultats de l'OCR de la plaque d'immatriculation : État de Californie, plaque 8TRS777, confiance de 95,87 %

Le code montre comment importer une image en tant OcrInput et l'utiliser avec la méthode ReadLicensePlate pour extraire le texte de la plaque d'immatriculation. Le résultat affiche le texte extrait qui correspond à la plaque d'immatriculation affichée dans l'image d'entrée, ainsi qu'un niveau de confiance indiquant la précision de la reconnaissance optique de caractères (OCR).

Texte : Le texte extrait de l'entrée OCR.

Confiance : Une propriété double qui indique la confiance en la précision statistique d'une moyenne de chaque caractère, 1 étant la valeur la plus élevée et 0 la valeur la plus faible.

Pour un contrôle plus précis du processus d'OCR, vous pouvez explorer les options de configuration avancées afin d'affiner les paramètres de reconnaissance des caractères.


Comment extraire des plaques d'immatriculation à partir d'images de voitures ?

Cette méthode fonctionne également bien avec les images contenant une voiture avec une plaque d'immatriculation. Le code est le même que celui ci-dessus, mais l'image d'entrée a été modifiée. Vous pouvez également extraire les coordonnées en pixels de la zone où se trouve la plaque d'immatriculation sur l'image.

Quel type d'images de voitures est le plus efficace ?

Voiture Skoda gris foncé portant la plaque d'immatriculation Maharashtra MH 20 EE 7602 garée sur un trottoir en briques

Pour des résultats optimaux, assurez-vous que les images de votre voiture ont :

  • Visibilité claire de la plaque d'immatriculation
  • Bonnes conditions d'éclairage (éviter les reflets et les ombres)
  • Distorsion angulaire minimale
  • Résolution adéquate (pensez à ajuster les paramètres DPI pour les images à faible résolution)

Comment obtenir les coordonnées de l'emplacement de la plaque d'immatriculation?

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

var ocr = new IronTesseract();
using var inputLicensePlate = new OcrInput();
inputLicensePlate.LoadImage("car_license.jpg");

// Read license plate
OcrLicensePlateResult result = ocr.ReadLicensePlate(inputLicensePlate);

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

// Write license plate value and coordinates in a string
string output = $"License Plate Number:\n{result.Text}\n\n"
              + $"License Plate Area_\n"
              + $"Starting X: {rectangle.X}\n"
              + $"Starting Y: {rectangle.Y}\n"
              + $"Width: {rectangle.Width}\n"
              + $"Height: {rectangle.Height}";

Console.WriteLine(output);
$vbLabelText   $csharpLabel

Quelles sont les informations incluses dans le résultat ?

Sortie de débogage de Visual Studio montrant la plaque d'immatriculation détectée MH20EE7602 avec les coordonnées et les dimensions de la boîte de délimitation

L'exemple montre comment la méthode ReadLicensePlate peut être appliquée à l'image d'une voiture. La méthode renverra également les coordonnées du rectangle où se situe la plaque d'immatriculation dans l'image.

Cette méthode est optimisée pour la recherche de plaques d'immatriculation individuelles et permet de les rechercher dans des images libres de droits.

Comment traiter plusieurs plaques d'immatriculation?

Lorsque vous traitez plusieurs images de véhicules, vous pouvez les traiter efficacement à l'aide d'opérations par lots :

using IronOcr;
using System.IO;
using System.Threading.Tasks;

public async Task ProcessMultipleLicensePlates(string[] imagePaths)
{
    var ocr = new IronTesseract();

    // Configure for optimal performance
    ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;

    var tasks = imagePaths.Select(async path => 
    {
        using var input = new OcrInput();
        input.LoadImage(path);

        var result = await Task.Run(() => ocr.ReadLicensePlate(input));

        return new { 
            FilePath = path, 
            PlateNumber = result.Text, 
            Confidence = result.Confidence 
        };
    });

    var results = await Task.WhenAll(tasks);

    // Process results
    foreach (var result in results)
    {
        Console.WriteLine($"File: {result.FilePath}");
        Console.WriteLine($"Plate: {result.PlateNumber} (Confidence: {result.Confidence:P})");
    }
}
using IronOcr;
using System.IO;
using System.Threading.Tasks;

public async Task ProcessMultipleLicensePlates(string[] imagePaths)
{
    var ocr = new IronTesseract();

    // Configure for optimal performance
    ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;

    var tasks = imagePaths.Select(async path => 
    {
        using var input = new OcrInput();
        input.LoadImage(path);

        var result = await Task.Run(() => ocr.ReadLicensePlate(input));

        return new { 
            FilePath = path, 
            PlateNumber = result.Text, 
            Confidence = result.Confidence 
        };
    });

    var results = await Task.WhenAll(tasks);

    // Process results
    foreach (var result in results)
    {
        Console.WriteLine($"File: {result.FilePath}");
        Console.WriteLine($"Plate: {result.PlateNumber} (Confidence: {result.Confidence:P})");
    }
}
$vbLabelText   $csharpLabel

Pour le traitement à grande échelle, envisagez de mettre en œuvre des capacités de multithreading pour maximiser les performances.

Comment améliorer la précision de la reconnaissance des plaques d'immatriculation?

Pour améliorer la précision de la détection des plaques d'immatriculation, envisagez les techniques d'optimisation suivantes :

Appliquer des filtres de prétraitement d'image

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();

// Load and preprocess the image
input.LoadImage("blurry_plate.jpg");
input.Deskew();  // Correct image rotation
input.DeNoise(); // Remove background noise
input.EnhanceResolution(225); // Upscale for better clarity
input.Sharpen(); // Enhance edge definition

var result = ocr.ReadLicensePlate(input);
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();

// Load and preprocess the image
input.LoadImage("blurry_plate.jpg");
input.Deskew();  // Correct image rotation
input.DeNoise(); // Remove background noise
input.EnhanceResolution(225); // Upscale for better clarity
input.Sharpen(); // Enhance edge definition

var result = ocr.ReadLicensePlate(input);
$vbLabelText   $csharpLabel

Découvrez les filtres d'image et techniques de correction d'image disponibles pour optimiser vos images d'entrée.

Gérer les différentes conditions d'éclairage

Pour les scénarios d'éclairage difficiles, appliquez les corrections appropriées :

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();

input.LoadImage("dark_plate.jpg");
input.Contrast(1.5); // Increase contrast
input.Brightness(1.2); // Adjust brightness
input.Binarize(); // Convert to black and white for clarity

var result = ocr.ReadLicensePlate(input);
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();

input.LoadImage("dark_plate.jpg");
input.Contrast(1.5); // Increase contrast
input.Brightness(1.2); // Adjust brightness
input.Binarize(); // Convert to black and white for clarity

var result = ocr.ReadLicensePlate(input);
$vbLabelText   $csharpLabel

Comment surveiller les performances de l'OCR?

Lors du traitement de lots importants de plaques d'immatriculation, le suivi de la progression aide à gérer les ressources du système :

using IronOcr;

var ocr = new IronTesseract();

// Subscribe to progress events
ocr.OcrProgress += (sender, e) => 
{
    Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};

using var input = new OcrInput();
input.LoadImage("large_parking_lot.jpg");

var result = ocr.ReadLicensePlate(input);
using IronOcr;

var ocr = new IronTesseract();

// Subscribe to progress events
ocr.OcrProgress += (sender, e) => 
{
    Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};

using var input = new OcrInput();
input.LoadImage("large_parking_lot.jpg");

var result = ocr.ReadLicensePlate(input);
$vbLabelText   $csharpLabel

Pour un suivi détaillé des performances, explorez les capacités de suivi des progrès dans IronOcr.

Comment cela se compare-t-il à d'autres lectures de documents?

Les capacités de lecture de documents spécialisés d'IronOcr vont au-delà des plaques d'immatriculation. La même technologie de vision par ordinateur qui permet la détection des plaques d'immatriculation peut être appliquée à :

Quels sont les cas d'utilisation courants ?

La reconnaissance des plaques d'immatriculation avec IronOCR permet diverses applications :

  • Gestion du stationnement : Automatiser l'enregistrement des entrées/sorties et le traitement des paiements
  • Toll Collection : Accélérer l'identification des véhicules aux postes de péage
  • Surveillance de la sécurité : Suivre les mouvements des véhicules dans les zones restreintes
  • Gestion du parc automobile : Contrôler les véhicules et la logistique de l'entreprise
  • Application de la loi : Identifier rapidement les véhicules d'intérêt

Chaque cas d'utilisation bénéficie de la grande précision d'IronOCR et de sa capacité à traiter les images en temps réel, ce qui le rend adapté à la fois au traitement par lots et aux applications en direct.

Questions Fréquemment Posées

Comment lire des plaques d'immatriculation à partir d'images en C# ?

Vous pouvez lire les plaques d'immatriculation en C# à l'aide de la méthode ReadLicensePlate d'IronOcr. Il suffit de créer une instance IronTesseract et d'appeler ReadLicensePlate avec un OcrInput contenant l'image de la plaque d'immatriculation. La méthode renvoie un résultat OcrLicensePlateResult avec le texte de la plaque extrait et le score de confiance.

Quel progiciel dois-je installer pour la reconnaissance des plaques d'immatriculation ?

Pour utiliser la fonctionnalité de reconnaissance des plaques d'immatriculation dans IronOCR, vous devez installer à la fois le package principal IronOCR et le package IronOcr.Extension.AdvancedScan à partir de NuGet. L'extension AdvancedScan fournit la méthode spécialisée ReadLicensePlate.

Puis-je extraire des plaques d'immatriculation avec une seule ligne de code ?

Oui, IronOCR permet d'extraire le texte des plaques d'immatriculation avec une seule ligne de code : OcrLicensePlateResult result = new IronTesseract().ReadLicensePlate(new OcrInput("plate.jpg")) ; Ceci renvoie immédiatement le numéro de la plaque et le score de confiance.

Quelles sont les langues prises en charge pour la reconnaissance des plaques d'immatriculation ?

La méthode ReadLicensePlate d'IronOcr prend actuellement en charge les plaques d'immatriculation en alphabet anglais, chinois, japonais, coréen et latin. La méthode est optimisée spécifiquement pour ces jeux de caractères.

Comment puis-je améliorer la précision de la lecture des plaques d'immatriculation ?

Vous pouvez améliorer la précision dans IronOcr en établissant une liste blanche des caractères spécifiques qui apparaissent dans les plaques d'immatriculation, en veillant à ce que l'image ne contienne que la plaque d'immatriculation sans en-tête ni pied de page, et en utilisant des images de haute qualité. La méthode ReadLicensePlate est déjà optimisée spécifiquement pour la reconnaissance des plaques d'immatriculation.

Quelle est la configuration requise pour la reconnaissance des plaques d'immatriculation sur .NET Framework ?

Lorsque vous utilisez les fonctions d'analyse avancées d'IronOCR, notamment ReadLicensePlate sur .NET Framework, votre projet doit être exécuté sur une architecture x64. Cette exigence garantit des performances optimales pour la fonctionnalité de reconnaissance des plaques d'immatriculation.

Quelles sont les informations renvoyées par le système de reconnaissance des plaques d'immatriculation ?

La méthode ReadLicensePlate d'IronOcr renvoie un objet OcrLicensePlateResult contenant le texte de la plaque d'immatriculation extrait et un score de confiance. Cela vous permet à la fois de récupérer le numéro de la plaque et d'évaluer la fiabilité du résultat de l'OCR.

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,299,091 | Version : 2025.12 vient de sortir