Beim Verwalten eines großen Volumens an Fahrzeugbildern ist das manuelle Ablesen 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 automatisiert Nummernschilder aus Bildern extrahieren und spart dadurch erheblich Zeit bei gleichzeitiger Verbesserung der Datengenauigkeit.
In diesem Leitfaden zeigen wir, wie man IronOCR für die Kennzeichenerkennung verwendet und führen durch Beispiele und anpassbare Konfigurationen, die den Prozess nahtlos gestalten. Durch die Nutzung dieser Methoden können Entwickler das Lesen von Kennzeichen automatisieren, wodurch Aufgaben wie Parkraummanagement, Mauterhebung oder Sicherheitsüberwachung effizienter werden.
Um ein Nummernschild in IronOCR zu lesen, müssen wir die folgenden Schritte ausführen:
Wir verwenden die Methode ReadLicensePlate, die ein OcrInput als Parameter für die Eingabe nimmt. Diese Methode ist präziser für Kfz-Kennzeichen optimiert als das Standard-Read-Gegenstück der Bibliothek.
Optional: Wir können IronOCR so konfigurieren, dass nur die spezifischen Zeichen auf die Positivliste gesetzt werden, die auf einem Nummernschild vorkommen können, um die Verarbeitung der Nummernschilder zu beschleunigen.
Bitte beachten Sie
Die Methode funktioniert derzeit nur für Englisch, Chinesisch, Japanisch, Koreanisch und das lateinische Alphabet.
Die Verwendung des erweiterten Scans im .NET-Framework setzt voraus, dass das Projekt auf einer x64-Architektur läuft.
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
Ausgabe
Beachten Sie, dass wir das Bild zuerst als OcrInput importieren müssen, um den Parameter in der ReadLicensePlate-Methode korrekt zu übergeben.
Wie Sie aus der Konsolenausgabe sehen können, entspricht der extrahierte Text dem Nummernschild und Bundesstaat, die im Eingabebild gezeigt werden.
Text: Der extrahierte Text aus OCR-Eingabe.
Vertrauen: Eine "double"-Eigenschaft, die das statistische Genauigkeitsvertrauen eines Durchschnitts aller Zeichen angibt, wobei eins die höchste und null die niedrigste ist.
Nummernschild von einem Autobilder
Die Methode funktioniert auch gut mit einzelnen Bildern, die ein Auto mit einem Nummernschild enthalten. Der Code ist exakt gleich wie der oben genannte, nur das Eingabebild wurde geändert. Sie können auch die Pixelkoordinaten des Bereichs extrahieren, in dem sich das Nummernschild im Bild befindet.
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
Ausgabe
Wie Sie sehen können, stimmt das Ergebnis mit dem oben gezeigten Nummernschild überein, und der exakte rechteckige Bereich des Nummernschilds im Bild wird ebenfalls korrekt extrahiert.
Diese Methode ist optimiert, um nur einzelne Kennzeichen zu finden und kann danach in Stockbildern suchen.
Sind Sie bereit, loszulegen? Version: 2025.3 gerade veröffentlicht