So lesen Sie Nummernschilder in C# mit IronOCR
Die ReadLicensePlate-Methode von IronOCR extrahiert mithilfe fortschrittlicher OCR-Technologie automatisch Kennzeichen aus Fahrzeugbildern. Dieser einzelne Methodenaufruf kann Kennzeichen mit hoher Genauigkeit verarbeiten und gibt sowohl den Kennzeichentext als auch den Konfidenzwert für automatisierte Fahrzeugmanagementsysteme zurück.
Bei der Verwaltung einer großen Menge an Fahrzeugbildern ist das manuelle Auslesen von Kennzeichen zeitaufwändig und anfällig für menschliche Fehler. Die Automatisierung dieses Prozesses mit einem Tool wie IronOCR bietet eine effizientere und genauere Lösung. Die ReadLicensePlate-Methode von IronOCR kann Kennzeichen aus Bildern programmgesteuert extrahieren, was erhebliche Zeitersparnis bringt und gleichzeitig die Datengenauigkeit verbessert.
In diesem Leitfaden zeigen wir Ihnen, wie Sie IronOCR für die Kennzeichenerkennung einsetzen können, und gehen dabei Beispiele und anpassbare Konfigurationen durch, die den Prozess nahtlos gestalten. Durch den Einsatz dieser Methoden können Entwickler das Auslesen von Kfz-Kennzeichen automatisieren und so Aufgaben wie Parkraummanagement, Mauterhebung oder Sicherheitsüberwachung effizienter gestalten.
Um diese Funktion nutzen zu können, müssen Sie zusätzlich das Paket IronOcr.Extension.AdvancedScan installieren.
Schnellstart: Kennzeichen sofort extrahieren
Mit einem einzigen Methodenaufruf using IronOcr's ReadLicensePlate können Sie den Text eines Nummernschilds programmgesteuert aus jedem beliebigen Bild extrahieren. Es ist sofort einsatzbereit – laden Sie einfach ein Bild hoch, rufen Sie die Methode auf und erhalten Sie sofort sowohl das Kennzeichen als auch die Konfidenz.
-
Installieren Sie IronOCR mit NuGet Package Manager
PM > Install-Package IronOcr -
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
ReadLicensePlateMethode, um Daten aus dem Bild zu extrahieren - Rufen Sie die Eigenschaft `OcrLicensePlateResult` auf, um die extrahierten Kennzeichendaten anzuzeigen und zu 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 Methode
ReadLicensePlate, die einenOcrInputals Parameter für die Eingabe verwendet. Diese Methode ist für Kfz-Kennzeichen besser geeignet als das Standard-Read-Pendant der Bibliothek. - Optional können wir IronOCR so konfigurieren, dass bestimmte Zeichen, die in einem Kennzeichen vorkommen können, auf eine Whitelist gesetzt werden, um die Verarbeitung von Kennzeichen zu beschleunigen.
- Die Methode funktioniert derzeit nur für Englisch, Chinesisch, Japanisch, Koreanisch und Schriften mit lateinischem Alphabet.
- Die Verwendung von "Advanced Scan" im .NET Framework setzt voraus, dass das Projekt auf einer x64-Architektur läuft. )}]
Wie sieht das Eingabe-Kennzeichen aus?

Wie konfiguriere ich die OCR für Kfz-Kennzeichen?
: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 man ein Bild als OcrInput importiert und es mit der ReadLicensePlate-Methode verwendet, um den Text aus dem Nummernschild zu extrahieren. Die Ausgabe zeigt den extrahierten Text, der mit dem auf dem Eingabebild gezeigten Nummernschild übereinstimmt, zusammen mit einem Konfidenzwert, der die Genauigkeit der OCR angibt.
Text: Der aus der OCR-Eingabe extrahierte Text.
Konfidenz: Eine double-Eigenschaft, die die statistische Konfidenz der Genauigkeit eines Durchschnittswerts für jedes Zeichen angibt, wobei 1 der höchste und 0 der niedrigste Wert ist.
Für eine präzisere Steuerung des OCR-Prozesses können Sie erweiterte Konfigurationsoptionen nutzen, um die Einstellungen für die Zeichenerkennung fein abzustimmen.
Wie kann ich Kfz-Kennzeichen aus Fahrzeugbildern extrahieren?
Die Methode funktioniert auch gut bei Bildern, die ein Auto mit einem Nummernschild zeigen. Der Code ist derselbe wie oben, lediglich das Eingabebild wurde geändert. Sie können auch die Pixelkoordinaten des Bereichs extrahieren, in dem sich das Nummernschild im Bild befindet.
Welche Art von Fahrzeugbildern eignet sich am besten?

Um optimale Ergebnisse zu erzielen, stellen Sie sicher, dass Ihre Fahrzeugbilder Folgendes aufweisen:
- Deutliche Sichtbarkeit des Nummernschilds
- Gute Lichtverhältnisse (Blendeffekte oder Schatten vermeiden)
- Minimale Winkelverzerrung
- Angemessene Auflösung (bitte DPI-Einstellungen für Bilder mit niedriger Auflösung anpassen)
Wie erhalte ich die Koordinaten des Standorts des Nummernschilds?
: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 Methode ReadLicensePlate auf das Bild eines Autos angewendet werden kann. Die Methode gibt außerdem die Rechteckkoordinaten der Position des Nummernschilds im Bild zurück.
Diese Methode ist darauf optimiert, ausschließlich einzelne Kfz-Kennzeichen zu finden, und kann diese in Bilddatenbanken suchen.
Wie verarbeite ich mehrere Kennzeichen?
Wenn Sie mit mehreren Fahrzeugbildern arbeiten, können Sie diese mithilfe von Stapelverarbeitungsvorgängen effizient bearbeiten:
using IronOcr;
using System.IO;
using System.Threading.Tasks;
public async Task ProcessMultipleLicensePlates(string[] imagePaths)
{
var ocr = new IronTesseract();
// Configure for optimal performance
ocr.Co/nfiguration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
ocr.Co/nfiguration.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.Co/nfidence
};
});
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.Co/nfidence: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.Co/nfiguration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
ocr.Co/nfiguration.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.Co/nfidence
};
});
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.Co/nfidence: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 die Verarbeitung großer Datenmengen sollten Sie die Implementierung von Multithreading-Funktionen in Betracht ziehen, um die Leistung zu maximieren.
Wie kann ich die Genauigkeit der Kennzeichenerkennung verbessern?
Um die Genauigkeit der Kennzeichenerkennung zu verbessern, sollten Sie folgende Optimierungstechniken in Betracht ziehen:
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);
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.
Umgang mit unterschiedlichen Lichtverhältnissen
Bei schwierigen Lichtsituationen sind entsprechende Korrekturen vorzunehmen:
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("dark_plate.jpg");
input.Co/ntrast(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.Co/ntrast(1.5); // Increase contrast
input.Brightness(1.2); // Adjust brightness
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.Brightness(1.2) ' Adjust brightness
input.Binarize() ' Convert to black and white for clarity
Dim result = ocr.ReadLicensePlate(input)
End Using
Wie überwache ich die OCR-Leistung?
Bei der Verarbeitung großer Mengen von Kfz-Kennzeichen 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);
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 nutzen Sie die Funktionen zur Fortschrittsverfolgung in IronOCR.
Wie unterscheidet sich dies von anderen Dokumentenleseprogrammen?
Die speziellen Funktionen von IronOCR zum Lesen von Dokumenten gehen über das Erkennen von Kfz-Kennzeichen hinaus. Die gleiche Computer-Vision-Technologie, die die Kennzeichenerkennung ermöglicht, kann auch für folgende Bereiche eingesetzt werden:
- Auslesen von Reisepässen zur Reise- und Identitätsüberprüfung
- MICR-Scheckverarbeitung für Bankanwendungen
- Allgemeines Scannen von Dokumenten für Digitalisierungsprojekte
Was sind häufige Anwendungsfälle?
Die Kennzeichenerkennung mit IronOCR ermöglicht verschiedene Anwendungen:
- Parkplatzverwaltung: Automatisierung der Ein- und Ausfahrtsprotokollierung sowie der Zahlungsabwicklung
- Mauterhebung: Beschleunigung der Fahrzeugidentifizierung an Mautstellen
- Sicherheitsüberwachung: Verfolgen Sie Fahrzeugbewegungen in Sperrbereichen
- Flottenmanagement: Überwachung von Firmenfahrzeugen und Logistik
- Strafverfolgung: Schnelles Identifizieren von gesuchten Fahrzeugen
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.

