Wie man bestimmte Dokumente liest
Es ist sehr schwierig, bestimmte Dokumente wie Standardtextdokumente, Nummernschilder, Pässe und Fotos mit einer allgemeinen, einzigartigen Methode genau zu lesen. Diese Herausforderungen ergeben sich aus den unterschiedlichen Formaten, Layouts und Inhalten der einzelnen Dokumenttypen sowie aus der unterschiedlichen Bildqualität, Verzerrung und dem speziellen Inhalt. Darüber hinaus wird das Erreichen eines kontextbezogenen Verständnisses und die Abwägung von Leistung und Effizienz mit einem breiteren Spektrum von Dokumenttypen komplexer.
IronOCR stellt spezielle Methoden für die OCR von bestimmten Dokumenten wie Standardtextdokumenten, Nummernschildern, Pässen und Fotos vor, um eine optimale Genauigkeit und Leistung zu erzielen.
Legen Sie los mit IronOCR
Beginnen Sie noch heute mit der Verwendung von IronOCR in Ihrem Projekt mit einer kostenlosen Testversion.
Wie man bestimmte Dokumente liest
- Download einer C#-Bibliothek zum Lesen von Nummernschildern, Pässen und Fotos
- Das Bild und das PDF-Dokument für die OCR vorbereiten
- Setzen Sie die
ReadLicensePlate
methode zum Lesen eines Nummernschildes - Setzen Sie die
Reisepass lesen
methode zum Abrufen von Informationen aus einem Reisepass - Nutzen Sie die
LeseFoto
undReadScreenShot
methoden zum Lesen von Bildern, die schwer zu lesenden Text enthalten
Über das Paket
Die Methoden ReadLicensePlate
, ReadPassport
, ReadPhoto
und ReadScreenShot
sind Erweiterungsmethoden des IronOCR-Basispakets und erfordern dieIronOcr.Extensions.AdvancedScan zu installierenden Pakets. Derzeit ist diese Erweiterung nur unter Windows verfügbar.
Die Methoden arbeiten mit OCR-Engine-Konfigurationen wie Blacklist und Whitelist. Mehrere Sprachen, einschließlich Chinesisch, Japanisch, Koreanisch und das lateinische Alphabet, werden bei allen Methoden mit Ausnahme der Methode "ReadPassport" unterstützt. Bitte beachten Sie, dass für jede Sprache ein zusätzliches Sprachpaket erforderlich ist,IronOcr.Languages.
Die Verwendung des erweiterten Scans im .NET-Framework setzt voraus, dass das Projekt auf einer x64-Architektur läuft. Navigieren Sie zur Projektkonfiguration und deaktivieren Sie die Option "32-Bit bevorzugen", um dies zu erreichen. Weitere Informationen finden Sie in der folgenden Anleitung zur Fehlerbehebung: "Erweiterte Suche nach .NET-Framework."
Dokument lesen Beispiel
Die Methode ReadDocument
ist eine robuste Methode zum Lesen von Dokumenten, die sich auf gescannte Dokumente oder Fotos von Papierdokumenten mit viel Text spezialisiert. Die Konfiguration PageSegmentationMode ist sehr wichtig beim Lesen von Textdokumenten mit unterschiedlichen Layouts. Die Typen SingleBlock und SparseText könnten zum Beispiel viele Informationen aus dem Tabellenlayout abrufen. Dies liegt daran, dass SingleBlock davon ausgeht, dass der Text in einem Block bleibt, während SparseText davon ausgeht, dass der Text über das gesamte 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 folgenden Methoden sind Erweiterungsmethoden für das IronOCR-Basispaket und erfordern dieIronOcr.Extensions.AdvancedScan zu installierenden Pakets. Derzeit ist diese Erweiterung nur unter Windows verfügbar.
Beispiel Nummernschild lesen
Die Methode ReadLicensePlate
ist für das Lesen von Nummernschildern aus Fotos optimiert. Die spezielle Information, die von dieser Methode zurückgegeben wird, ist die Licenseplate-Eigenschaft, die die Information über die Position des Nummernschildes im angegebenen 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
Beispiel für einen Reisepass lesen
Die Methode ReadPassport
ist für das Lesen und Extrahieren von Passinformationen aus Passfotos durch Scannen der maschinenlesbaren Zone optimiert(MRZ) inhalt. Eine MRZ ist eine speziell definierte Zone in offiziellen Dokumenten wie Pässen, Personalausweisen und Visa. Die MRZ enthält in der Regel wichtige persönliche Angaben wie Name, Geburtsdatum, Staatsangehörigkeit und Dokumentennummer des Inhabers. 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 achten Sie darauf, dass das Dokument nur das Passbild enthält. Jeder Kopf- und Fußtext könnte die Methode verwirren und zu einer unerwarteten Ausgabe führen.
Fotobeispiel lesen
Die Methode ReadPhoto
ist für das Lesen von Bildern optimiert, die schwer lesbaren Text enthalten. Diese Methode gibt die Eigenschaft TextRegions 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].FrameNumber;
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).FrameNumber
Dim textinregion As String = result.TextRegions(0).TextInRegion
Dim region As Rectangle = result.TextRegions(0).Region
Screenshot-Beispiel lesen
Die Methode ReadScreenShot
ist für das Lesen von Screenshots optimiert, die schwer lesbaren Text enthalten. Ähnlich wie die ReadPhoto-Methode gibt sie auch die Eigenschaft TextRegions 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)