How to Read Specialized Documents with C# and IronOCR
Das genaue Lesen spezifischer Dokumente wie Standardtextdokumente, Nummernschilder, Pässe und Fotos mit einer allgemeinen einheitlichen Methode ist sehr schwierig. Diese Herausforderungen ergeben sich aus den unterschiedlichen Formaten, Layouts und Inhalten der einzelnen Dokumenttypen sowie aus Variationen in der Bildqualität, Verzerrung und spezialisierten Inhalten. Darüber hinaus wird es komplexer, ein kontextuelles Verständnis zu erreichen und Leistung und Effizienz im Rahmen eines breiteren Spektrums von Dokumenttypen in Einklang zu bringen.
IronOCR führt spezifische Methoden ein, um OCR an besonderen Dokumenten wie Standardtextdokumenten, Nummernschildern, Pässen und Fotos durchzuführen, um optimale Genauigkeit und Leistung zu erzielen.
Schnellstart: Lesen Sie einen Pass in einer Zeile
Verwenden Sie die Erweiterung ReadPassport von IronOCR, um alle wichtigen Passdaten mit minimalem Aufwand zu extrahieren. Mit nur einer Zeile Code – vorausgesetzt, Sie haben IronOCR und AdvancedScan installiert – erhalten Sie schnell und mühelos strukturierte Ergebnisdaten wie Namen, Passnummer, Land und mehr.
-
Installieren Sie IronOCR mit NuGet Package Manager
PM > Install-Package IronOcr -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
var result = new IronTesseract().ReadPassport(new OcrInput().LoadImage("passport.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 eine C#-Bibliothek herunter, um Nummernschilder, Reisepässe und Fotos auszulesen.
- Bereiten Sie das Bild- und PDF-Dokument für OCR vor
- Stellen Sie die Methode
ReadLicensePlateso ein, dass sie ein Nummernschild liest. - Legen Sie die
ReadPassportMethode fest, um Informationen aus einem Reisepass abzurufen. - Leverage the
ReadPhotoand `ReadScreenShot` methods to read images that contain hard-to-read text
Über das Paket
Die Methoden ReadLicensePlate, ReadPassport, ReadPhoto und ReadScreenShot sind Erweiterungsmethoden für das Basis-IronOCR-Paket und erfordern die Installation des Pakets IronOcr.Extensions.AdvancedScan.
Die Methoden arbeiten mit OCR-Engine-Konfigurationen wie Blacklist und Whitelist. Mehrere Sprachen, darunter Chinesisch, Japanisch, Koreanisch und LatinAlphabet, werden in allen Methoden mit Ausnahme der ReadPassport-Methode unterstützt. Bitte beachten Sie, dass jede Sprache ein zusätzliches Sprachpaket erfordert, IronOcr.Languages.
Die erweiterte Abtastung auf dem .NET Framework erfordert, dass das Projekt auf der x64-Architektur ausgeführt wird. Navigieren Sie zur Projektkonfiguration und deaktivieren Sie die Option "Bevorzugt 32-Bit", um dies zu erreichen. Erfahren Sie mehr im folgenden Leitfaden zur Fehlersuche: "Erweiterte Abtastung auf dem .NET Framework".
Dokumentbeispiel lesen
Die ReadDocument-Methode ist eine robuste Methode zum Lesen von Dokumenten, die speziell für gescannte Dokumente oder Fotos von Papierdokumenten mit hohem Textanteil entwickelt wurde. Die Konfiguration PageSegmentationMode ist sehr wichtig beim Lesen von Textdokumenten mit unterschiedlichen Layouts.
Zum Beispiel könnten die Typen SingleBlock und SparseText viel Informationen aus einem Tabellenlayout abrufen. Dies liegt daran, dass SingleBlock davon ausgeht, dass der Text als Block bleibt, während SparseText davon ausgeht, dass der Text im gesamten Dokument verstreut ist.
:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-document.cs
using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
// Configure OCR engine
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;
using var input = new OcrInput();
input.LoadPdf("Five.pdf");
// Perform OCR
OcrResult result = ocr.ReadDocument(input);
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
' Instantiate OCR engine
Private ocr = New IronTesseract()
' Configure OCR engine
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock
Dim input = New OcrInput()
input.LoadPdf("Five.pdf")
' Perform OCR
Dim result As OcrResult = ocr.ReadDocument(input)
Console.WriteLine(result.Text)
Die unten aufgeführten Methoden sind Erweiterungsmethoden des grundlegenden IronOCR-Pakets und erfordern die Installation des IronOcr.Extensions.AdvancedScan-Pakets.
Nummernschild-Beispiel
Die ReadLicensePlate-Methode ist für das Auslesen von Kfz-Kennzeichen aus Fotos optimiert. Die speziellen Informationen, die von dieser Methode zurückgegeben werden, sind die Licenseplate-Eigenschaft, die die Informationen über den Standort des Nummernschilds im bereitgestellten Dokument enthält.
:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-license-plate.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputLicensePlate = new OcrInput();
inputLicensePlate.LoadImage("LicensePlate.jpeg");
// Perform OCR
OcrLicensePlateResult result = ocr.ReadLicensePlate(inputLicensePlate);
// Retrieve license plate coordinates
Rectangle rectangle = result.Licenseplate;
// Retrieve license plate value
string output = result.Text;
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputLicensePlate = New OcrInput()
inputLicensePlate.LoadImage("LicensePlate.jpeg")
' Perform OCR
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(inputLicensePlate)
' Retrieve license plate coordinates
Dim rectangle As Rectangle = result.Licenseplate
' Retrieve license plate value
Dim output As String = result.Text
Passexempel lesen
Die ReadPassport-Methode ist für das Lesen optimiert und extrahiert Passdaten aus Passfotos, indem sie den Inhalt der maschinenlesbaren Zone (MRZ) scannt. Eine MRZ ist eine speziell definierte Zone in offiziellen Dokumenten wie Pässen, Personalausweisen und Visa. Die MRZ enthält typischerweise wesentliche persönliche Informationen, wie den Namen des Inhabers, das Geburtsdatum, die Nationalität und die Dokumentennummer. Derzeit unterstützt diese Methode nur die englische Sprache.
:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-passport.cs
using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPassport = new OcrInput();
inputPassport.LoadImage("Passport.jpg");
// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);
// Output passport information
Console.WriteLine(result.PassportInfo.GivenNames);
Console.WriteLine(result.PassportInfo.Country);
Console.WriteLine(result.PassportInfo.PassportNumber);
Console.WriteLine(result.PassportInfo.Surname);
Console.WriteLine(result.PassportInfo.DateOfBirth);
Console.WriteLine(result.PassportInfo.DateOfExpiry);
Imports IronOcr
Imports System
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputPassport = New OcrInput()
inputPassport.LoadImage("Passport.jpg")
' Perform OCR
Dim result As OcrPassportResult = ocr.ReadPassport(inputPassport)
' Output passport information
Console.WriteLine(result.PassportInfo.GivenNames)
Console.WriteLine(result.PassportInfo.Country)
Console.WriteLine(result.PassportInfo.PassportNumber)
Console.WriteLine(result.PassportInfo.Surname)
Console.WriteLine(result.PassportInfo.DateOfBirth)
Console.WriteLine(result.PassportInfo.DateOfExpiry)
Ergebnis
Bitte stellen Sie sicher, dass das Dokument nur das Passbild enthält. Jeglicher Kopf- und Fußzeilentext könnte die Methode verwirren und ein unerwartetes Ergebnis hervorrufen.
Foto-Beispiel lesen
Die ReadPhoto-Methode ist für das Lesen von Bildern optimiert, die schwer lesbaren Text enthalten. Diese Methode gibt die TextRegions-Eigenschaft zurück, die nützliche Informationen über den erkannten Text enthält, wie Region, TextInRegion und FrameNumber.
:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-photo.cs
using IronOcr;
using IronSoftware.Drawing;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPhoto = new OcrInput();
inputPhoto.LoadImageFrame("photo.tif", 2);
// Perform OCR
OcrPhotoResult result = ocr.ReadPhoto(inputPhoto);
// index number refer to region order in the page
int number = result.TextRegions[0].PageNumber;
string textinregion = result.TextRegions[0].TextInRegion;
Rectangle region = result.TextRegions[0].Region;
Imports IronOcr
Imports IronSoftware.Drawing
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputPhoto = New OcrInput()
inputPhoto.LoadImageFrame("photo.tif", 2)
' Perform OCR
Dim result As OcrPhotoResult = ocr.ReadPhoto(inputPhoto)
' index number refer to region order in the page
Dim number As Integer = result.TextRegions(0).PageNumber
Dim textinregion As String = result.TextRegions(0).TextInRegion
Dim region As Rectangle = result.TextRegions(0).Region
Screenshot-Beispiel lesen
Die ReadScreenShot-Methode ist für das Lesen von Screenshots optimiert, die schwer lesbaren Text enthalten. Ähnlich wie bei der ReadPhoto-Methode gibt es auch die TextRegions-Eigenschaft zurück.
:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-screenshot.cs
}
using IronOcr;
using System;
using System.Linq;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputScreenshot = new OcrInput();
inputScreenshot.LoadImage("screenshot.png");
// Perform OCR
OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot);
// Output screenshoot information
Console.WriteLine(result.Text);
Console.WriteLine(result.TextRegions.First().Region.X);
Console.WriteLine(result.TextRegions.Last().Region.Width);
Console.WriteLine(result.Confidence);
}
Imports IronOcr
Imports System
Imports System.Linq
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputScreenshot = New OcrInput()
inputScreenshot.LoadImage("screenshot.png")
' Perform OCR
Dim result As OcrPhotoResult = ocr.ReadScreenShot(inputScreenshot)
' Output screenshoot information
Console.WriteLine(result.Text)
Console.WriteLine(result.TextRegions.First().Region.X)
Console.WriteLine(result.TextRegions.Last().Region.Width)
Console.WriteLine(result.Confidence)
}
Häufig gestellte Fragen
Wie kann ich Nummernschilder mit OCR in C# lesen?
Sie können die Methode ReadLicensePlate von IronOCR verwenden, um Nummernschilder auf Fotos genau zu lesen. Diese Methode gibt den Text des Nummernschilds und dessen Standortdetails zurück.
Was ist der beste Weg, um Informationen aus Passfotos zu extrahieren?
Die Methode ReadPassport von IronOCR ist dazu entwickelt, die maschinenlesbare Zone (MRZ) in Passfotos zu scannen und wesentliche Informationen wie Name, Geburtsdatum und Dokumentnummer zu extrahieren.
Kann IronOCR Text aus Fotos mit schwer lesbarem Text lesen?
Ja, die Methode ReadPhoto in IronOCR ist optimiert, um Bilder mit schwer lesbarem Text zu lesen und detaillierte Daten über den erkannten Text und dessen Regionen zu liefern.
Ist es möglich, IronOCR zu verwenden, um Text von Screenshots zu lesen?
Absolut, die Methode ReadScreenShot von IronOCR ist speziell für die Verarbeitung von Text in Screenshots optimiert und liefert detaillierte Informationen zu den Textregionen.
Wie kann ich die OCR-Genauigkeit für Dokumente mit komplexen Layouts verbessern?
Um die OCR-Genauigkeit für komplexe Dokumentenlayouts zu verbessern, konfigurieren Sie den PageSegmentationMode in IronOCR. Optionen wie SingleBlock und SparseText sind besonders nützlich, um Informationen aus Tabellenlayouts zu extrahieren.
Was soll ich tun, wenn die erweiterten Scan-Funktionen von IronOCR in meinem .NET Framework-Projekt nicht funktionieren?
Stellen Sie sicher, dass Ihr Projekt für die Ausführung auf x64-Architektur eingestellt ist, indem Sie die Option 'Bevorzuge 32-Bit' in Ihren Projekteinstellungen deaktivieren, um Probleme mit erweiterten Scan-Funktionen in IronOCR auf .NET Framework zu beheben.
Gibt es Sprachunterstützungseinschränkungen in IronOCR?
IronOCR unterstützt mehrere Sprachen, darunter Chinesisch, Japanisch, Koreanisch und Lateinisches Alphabet. Die Methode ReadPassport unterstützt jedoch derzeit nur Dokumente in Englisch.
Was benötige ich, um erweiterte Scan-Funktionen in IronOCR zu verwenden?
Um erweiterte Scan-Funktionen in IronOCR zu verwenden, wird das Paket IronOcr.Extensions.AdvancedScan benötigt, das exklusiv auf Windows verfügbar ist.

