Lesen von Nummernschildern in C# mit IronOCR
Die ReadLicensePlate Methode von IronOCR extrahiert automatisch Kfz-Kennzeichen 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. Die ReadLicensePlate Methode von IronOCR kann die Kfz-Kennzeichen aus Bildern programmatisch extrahieren, was erheblich Zeit spart und die Datengenauigkeit verbessert.
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 IronOcr.Extension.AdvancedScan Paket installieren.
Schnellstart: Kennzeichennummer sofort extrahieren
Mit einem einzelnen Methodenaufruf von IronOCR's ReadLicensePlate können Sie den Kennzeichentext aus jedem Bild programmatisch 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.
-
Installieren Sie IronOCR mit NuGet Package Manager
-
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
OcrLicensePlateResult result = new IronTesseract().ReadLicensePlate(new OcrInput("plate.jpg")); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Minimaler Arbeitsablauf (5 Schritte)
- Laden Sie die C#-Bibliothek zum Auslesen von Kfz-Kennzeichen herunter.
- Importieren Sie das Bild des Nummernschilds zur Verarbeitung
- Stellen Sie sicher, dass das Dokument nur das Bild des Nummernschilds enthält, ohne Kopf- oder Fußzeilen
- Verwenden Sie die Methode
ReadLicensePlate, um Daten aus dem Bild zu extrahieren. - Über die Eigenschaft "OcrLicensePlateResult" können Sie die extrahierten Lizenzdaten anzeigen und bearbeiten.
Wie lese ich ein Nummernschild in C#?
Um ein Nummernschild in IronOCR zu lesen, führen wir die folgenden Schritte aus:
- Wir verwenden die
ReadLicensePlateMethode, die einOcrInputals Parameter für die Eingabe nutzt. Diese Methode ist für Kfz-Kennzeichen besser optimiert als das standardmäßigeReadGegenstück 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.
- Die Methode funktioniert derzeit nur für englische, chinesische, japanische, koreanische und lateinische Alphabet-Schriften.
- Die Verwendung eines erweiterten Scans auf .NET Framework erfordert, dass das Projekt auf x64-Architektur läuft. )}]
Wie sieht das Eingabekennzeichen aus?

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)
Welche Ergebnisse kann ich erwarten?

Der Code zeigt, wie ein Bild als OcrInput importiert und mit der ReadLicensePlate Methode verwendet werden kann, um den Text vom Kennzeichen 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.
Zuverlässigkeit: Eine double Eigenschaft, die das statistische Zuverlässigkeitsvertrauen eines Durchschnitts jedes Zeichens angibt, wobei eins am höchsten und null am niedrigsten 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?

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)
Welche Informationen enthält das Ergebnis?

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})");
}
}
Imports IronOcr
Imports System.IO
Imports System.Threading.Tasks
Public Async Function ProcessMultipleLicensePlates(imagePaths As String()) As Task
Dim ocr As New IronTesseract()
' Configure for optimal performance
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock
Dim tasks = imagePaths.Select(Async Function(path)
Using input As New OcrInput()
input.LoadImage(path)
Dim result = Await Task.Run(Function() ocr.ReadLicensePlate(input))
Return New With {
.FilePath = path,
.PlateNumber = result.Text,
.Confidence = result.Confidence
}
End Using
End Function)
Dim results = Await Task.WhenAll(tasks)
' Process results
For Each result In results
Console.WriteLine($"File: {result.FilePath}")
Console.WriteLine($"Plate: {result.PlateNumber} (Confidence: {result.Confidence:P})")
Next
End Function
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
:path=/static-assets/ocr/content-code-examples/how-to/read-license-plate-5.cs
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);
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As 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
Dim result = ocr.ReadLicensePlate(input)
End Using
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:
:path=/static-assets/ocr/content-code-examples/how-to/read-license-plate-6.cs
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("dark_plate.jpg");
input.Contrast(1.5); // Increase contrast
input.Binarize(); // Convert to black and white for clarity
var result = ocr.ReadLicensePlate(input);
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadImage("dark_plate.jpg")
input.Contrast(1.5) ' Increase contrast
input.Binarize() ' Convert to black and white for clarity
Dim result = ocr.ReadLicensePlate(input)
End Using
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:
:path=/static-assets/ocr/content-code-examples/how-to/read-license-plate-7.cs
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);
Imports IronOcr
Dim ocr As New IronTesseract()
' Subscribe to progress events
AddHandler ocr.OcrProgress, Sub(sender, e)
Console.WriteLine($"Processing: {e.ProgressPercent}% complete")
End Sub
Using input As New OcrInput()
input.LoadImage("large_parking_lot.jpg")
Dim result = ocr.ReadLicensePlate(input)
End Using
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:
- Passlesen für Reisen und Identitätsüberprüfung
- MICR-Scheckverarbeitung für Bankanwendungen
- Allgemeines Scannen von Dokumenten für Digitalisierungsprojekte
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.
Was sind die Vorteile der Nutzung von IronOCR für das Dokumentenmanagement?
Die Verwendung von IronOCR für das Dokumentenmanagement rationalisiert den Arbeitsablauf, indem gescannte Dokumente in durchsuchbare und bearbeitbare Texte umgewandelt werden, wodurch der Bedarf an manueller Dateneingabe reduziert und die Zugänglichkeit von Dokumenten verbessert wird.
Wie kann IronOCR die Datenqualität verbessern?
IronOCR verbessert die Datenqualität durch seine fortschrittlichen Erkennungsalgorithmen und Bildkorrekturfunktionen, die sicherstellen, dass der Textextraktionsprozess sowohl zuverlässig als auch genau ist.
Gibt es eine kostenlose Testversion von IronOCR?
Ja, Iron Software bietet eine kostenlose Testversion von IronOCR an, die es den Benutzern ermöglicht, die Funktionen und Fähigkeiten zu testen, bevor sie eine Kaufentscheidung treffen.

