Wie man Kfz-Kennzeichen in C# mit OCR liest

Lesen von Nummernschildern in C#35; mit IronOCR

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

Die ReadLicensePlate-Methode von IronOCR extrahiert automatisch Nummernschilder aus Fahrzeugbildern mithilfe fortschrittlicher OCR-Technologie. Dieser einzelne Methodenaufruf kann Nummernschilder mit hoher Genauigkeit verarbeiten und sowohl den Text des Kennzeichens als auch die Vertrauensbewertung für automatisierte Fahrzeugverwaltungssysteme zurückgeben.

Beim Verwalten einer großen Anzahl von Fahrzeuginformationen ist das manuelle Lesen von Nummernschildern zeitaufwändig und fehleranfällig. Die Automatisierung dieses Prozesses mit einem Tool wie IronOCR bietet eine effizientere, genauere Lösung. Mit der Methode ReadLicensePlate von IronOCR können Nummernschilder programmatisch aus Bildern extrahiert werden, was eine erhebliche Zeitersparnis bei gleichzeitiger Verbesserung der Datengenauigkeit bedeutet.

In diesem Leitfaden wird die Verwendung von IronOCR für die Nummernschilderkennung anhand von Beispielen und anpassbaren Konfigurationen erläutert, die den Prozess nahtlos gestalten. Durch die Nutzung dieser Methoden können Entwickler das Lesen von Nummernschildern automatisieren und Aufgaben wie Parkraummanagement, Mauterhebung oder Sicherheitsüberwachung effizienter gestalten.

Um diese Funktion zu nutzen, müssen Sie auch das Paket IronOcr.Extension.AdvancedScan installieren.

als-Überschrift:2(Schnellstart: Nummernschild sofort extrahieren)

Mit einem einzigen Methodenaufruf unter Verwendung von IronOCR's ReadLicensePlate können Sie programmatisch den Text des Nummernschildes aus jedem Bild extrahieren. Die Anwendung ist sofort einsatzbereit: Laden Sie einfach ein Bild, rufen Sie die Methode auf, und Sie erhalten sofort sowohl das Kennzeichen als auch das Vertrauen.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronOCR mit dem NuGet-Paketmanager.

    PM > Install-Package IronOcr

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    OcrLicensePlateResult result = new IronTesseract().ReadLicensePlate(new OcrInput("plate.jpg"));
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronOCR in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

Wie lese ich ein Nummernschild in C#?

Um ein Nummernschild in IronOCR zu lesen, führen wir die folgenden Schritte aus:

  • Wir verwenden die Methode ReadLicensePlate, die einen OcrInput als Parameter für die Eingabe benötigt. Diese Methode ist für Nummernschilder optimierter als das Standard-Pendant Lesen der Bibliothek.
  • Optional kann IronOCR so konfiguriert werden, dass bestimmte Zeichen, die in einem Nummernschild vorkommen können, in die Whitelist aufgenommen werden, um die Verarbeitung von Nummernschildern zu beschleunigen.

[{i:(

  • Die Methode funktioniert derzeit nur für Englisch, Chinesisch, Japanisch, Koreanisch und lateinische Schriftzeichen.
  • Die Verwendung eines erweiterten Scans auf .NET Framework erfordert, dass das Projekt auf x64-Architektur läuft.
    @@--KLAMMER-SCHLIESSEN--@@

Wie sieht das Eingabekennzeichen aus?

Kalifornisches Nummernschild mit '8TRS777' - Beispiel für die Demonstration des Nummernschildlesens

Wie konfiguriere ich die OCR für Nummernschilder?

: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);
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System

Private ocr = New IronTesseract()
ocr.Configuration.WhiteListCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"

Dim inputLicensePlate = New OcrInput()
inputLicensePlate.LoadImage("plate.jpeg")

' Read license plate
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(inputLicensePlate)

' Retrieve license plate number and confidence value
Dim output As String = $"{result.Text}" & vbLf & "Result Confidence: {result.Confidence}"

Console.WriteLine(output)
$vbLabelText   $csharpLabel

Welche Ergebnisse kann ich erwarten?

Debug-Konsole mit OCR-Ergebnissen für Nummernschilder: Bundesstaat Kalifornien, Kennzeichen 8TRS777, Zuverlässigkeit 95,87%

Der Code zeigt, wie man ein Bild als OcrInput importiert und es mit der ReadLicensePlate-Methode verwendet, um den Text vom Nummernschild zu extrahieren. Die Ausgabe zeigt den extrahierten Text, der dem im Eingabebild gezeigten Nummernschild entspricht, zusammen mit einem Vertrauenslevel, das die Genauigkeit der OCR angibt.

Text: Der extrahierte Text aus OCR Eingabe.

Vertrauen: Eine Doppel-Eigenschaft, die die statistische Genauigkeitswahrscheinlichkeit eines Durchschnittswerts für jedes Zeichen angibt, wobei 1 der höchste und 0 der niedrigste Wert ist.

Für eine genauere Kontrolle des OCR-Prozesses können Sie die erweiterten Konfigurationsoptionen zur Feinabstimmung der Zeichenerkennungseinstellungen nutzen.


Wie kann ich Nummernschilder aus Fahrzeugbildern extrahieren?

Die Methode funktioniert auch gut mit Bildern, die ein Auto mit einem Nummernschild enthalten. Der Code ist derselbe wie der obige, wobei das Eingabebild geändert wurde. Sie können auch die Pixelkoordinaten des Bereichs extrahieren, in dem sich das Nummernschild im Bild befindet.

Welche Art von Autobildern ist am besten geeignet?

Dunkelgrauer Skoda mit Maharashtra-Kennzeichen MH 20 EE 7602, geparkt auf Ziegelsteinpflaster

Um optimale Ergebnisse zu erzielen, sollten Sie sicherstellen, dass Ihre Fahrzeugbilder Folgendes aufweisen:

  • Klare Sichtbarkeit des Nummernschilds
  • Gute Lichtverhältnisse (Blendung oder Schatten vermeiden)
  • Minimale Winkelverzerrung
  • Angemessene Auflösung (bei niedrig aufgelösten Bildern sollten die DPI-Einstellungen angepasst werden)

Wie erhalte ich die Koordinaten des Nummernschildes?

: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);
Imports Microsoft.VisualBasic
Imports IronOcr
Imports IronSoftware.Drawing
Imports System

Private ocr = New IronTesseract()
Private inputLicensePlate = New OcrInput()
inputLicensePlate.LoadImage("car_license.jpg")

' Read license plate
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(inputLicensePlate)

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

' Write license plate value and coordinates in a string
Dim output As String = $"License Plate Number:" & vbLf & "{result.Text}" & vbLf & vbLf & $"License Plate Area_" & vbLf & $"Starting X: {rectangle.X}" & vbLf & $"Starting Y: {rectangle.Y}" & vbLf & $"Width: {rectangle.Width}" & vbLf & $"Height: {rectangle.Height}"

Console.WriteLine(output)
$vbLabelText   $csharpLabel

Welche Informationen enthält das Ergebnis?

Visual Studio-Debug-Ausgabe, die das erkannte Kennzeichen MH20EE7602 mit Bounding-Box-Koordinaten und Abmessungen zeigt

Das Beispiel zeigt, wie die ReadLicensePlate-Methode auf ein Bild eines Autos angewendet werden kann. Die Methode gibt auch die Rechteckkoordinaten zurück, wo sich das Nummernschild im Bild befindet.

Diese Methode ist darauf optimiert, nur einzelne Nummernschilder zu finden und ist in der Lage, sie in Stockfotos zu suchen.

Wie bearbeite ich mehrere Nummernschilder?

Wenn Sie mit mehreren Fahrzeugbildern arbeiten, können Sie diese mit Hilfe von Stapeloperationen effizient verarbeiten:

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})");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Für umfangreiche Verarbeitungen sollten Sie Multithreading-Funktionen implementieren, um die Leistung zu maximieren.

Wie kann ich die Genauigkeit der Nummernschilderkennung verbessern?

Um die Genauigkeit der Nummernschilderkennung zu verbessern, sollten Sie diese Optimierungstechniken berücksichtigen:

Bildvorverarbeitungsfilter anwenden

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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Erfahren Sie mehr über verfügbare Bildfilter und Bildkorrekturtechniken zur Optimierung Ihrer Eingabebilder.

Mit unterschiedlichen Lichtverhältnissen umgehen

Bei schwierigen Beleuchtungsszenarien sind entsprechende Korrekturen vorzunehmen:

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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wie kann ich die OCR-Leistung überwachen?

Bei der Verarbeitung großer Stapel von Nummernschildern hilft die Verfolgung des Fortschritts bei der Verwaltung der Systemressourcen:

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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Für eine detaillierte Leistungsüberwachung können Sie die Funktionen zur Fortschrittsverfolgung in IronOCR nutzen.

Vergleich mit anderen Dokumentenlesungen?

Die speziellen Fähigkeiten von IronOCR beim Lesen von Dokumenten gehen über Nummernschilder hinaus. Die gleiche Computer-Vision-Technologie, die für die Erkennung von Nummernschildern eingesetzt wird, kann auch für andere Anwendungen verwendet werden:

Was sind häufige Anwendungsfälle?

Die Nummernschilderkennung mit IronOCR ermöglicht verschiedene Anwendungen:

  • Parkplatzverwaltung: Automatisierte Ein- und Ausfahrtsprotokollierung und Zahlungsabwicklung
  • Mauterhebung: Beschleunigung der Fahrzeugidentifizierung an Mautstellen
  • Sicherheitsüberwachung: Verfolgen von Fahrzeugbewegungen in Sperrgebieten
  • Flottenmanagement: Überwachung von Firmenfahrzeugen und Logistik
  • Gesetzesvollzug: Schnelles Erkennen von Fahrzeugen von Interesse

Jeder Anwendungsfall profitiert von der hohen Genauigkeit von IronOCR und der Fähigkeit, Bilder in Echtzeit zu verarbeiten, wodurch es sich sowohl für die Stapelverarbeitung als auch für Live-Anwendungen eignet.

Häufig gestellte Fragen

Wie lese ich Nummernschilder aus Bildern in C#?

Mit der ReadLicensePlate-Methode von IronOCR können Sie Nummernschilder in C# lesen. Erstellen Sie einfach eine IronTesseract-Instanz und rufen Sie ReadLicensePlate mit einem OcrInput auf, der das Bild Ihres Nummernschildes enthält. Die Methode gibt ein OcrLicensePlateResult mit dem extrahierten Kennzeichentext und dem Konfidenzwert zurück.

Welches Paket muss ich für die Nummernschilderkennung installieren?

Um die Kennzeichenerkennungsfunktion in IronOCR zu nutzen, müssen Sie sowohl das IronOCR-Hauptpaket als auch das IronOcr.Extension.AdvancedScan-Paket von NuGet installieren. Die AdvancedScan-Erweiterung bietet die spezielle ReadLicensePlate-Methode.

Kann ich Nummernschilder mit nur einer Zeile Code extrahieren?

Ja, IronOCR ermöglicht es Ihnen, Nummernschildtext mit einer einzigen Codezeile zu extrahieren: OcrLicensePlateResult result = new IronTesseract().ReadLicensePlate(new OcrInput("plate.jpg")); Dies gibt sowohl das Kennzeichen als auch den Vertrauenswert sofort zurück.

Welche Sprachen werden für die Nummernschilderkennung unterstützt?

Die ReadLicensePlate-Methode von IronOCR unterstützt derzeit Nummernschilder mit englischen, chinesischen, japanischen, koreanischen und lateinischen Schriftzeichen. Die Methode ist speziell für diese Zeichensätze optimiert.

Wie kann ich die Genauigkeit beim Lesen von Nummernschildern verbessern?

Sie können die Genauigkeit in IronOCR verbessern, indem Sie bestimmte Zeichen, die in Nummernschildern vorkommen, auf die Whitelist setzen, sicherstellen, dass das Bild nur das Nummernschild ohne Kopf- oder Fußzeilen enthält, und hochwertige Bilder verwenden. Die ReadLicensePlate-Methode ist bereits speziell für die Erkennung von Nummernschildern optimiert.

Was sind die Systemanforderungen für die Nummernschilderkennung auf .NET Framework?

Wenn Sie die erweiterten Scanfunktionen von IronOCR einschließlich ReadLicensePlate auf .NET Framework verwenden, muss Ihr Projekt auf einer x64-Architektur laufen. Diese Anforderung gewährleistet eine optimale Leistung der Kennzeichenerkennungsfunktion.

Welche Informationen liefert die Nummernschilderkennung?

Die ReadLicensePlate-Methode von IronOCR gibt ein OcrLicensePlateResult-Objekt zurück, das den extrahierten Kennzeichentext und einen Konfidenzwert enthält. Damit können Sie sowohl das Kennzeichen abrufen als auch die Zuverlässigkeit des OCR-Ergebnisses bewerten.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 5,246,844 | Version: 2025.12 gerade veröffentlicht