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
- Laden Sie eine C#-Bibliothek herunter, um Kennzeichen, Pässe und Fotos zu lesen
- Das Bild und das PDF-Dokument für die OCR vorbereiten
- Stellen Sie die
ReadLicensePlate
-Methode ein, um ein Nummernschild zu lesen - Stellen Sie die
ReadPassport
-Methode ein, um Informationen aus einem Reisepass abzurufen - Nutzen Sie die
ReadPhoto
- undReadScreenShot
-Methoden, um Bilder zu lesen, die schwer lesbaren Text enthalten
Über das Paket
Die Methoden ReadLicensePlate
, ReadPassport
, ReadPhoto
und ReadScreenShot
sind Erweiterungsmethoden zum Basis-IronOCR-Paket und erfordern die Installation des Pakets IronOcr.Extensions.AdvancedScan. Derzeit ist diese Erweiterung nur unter Windows verfügbar.
Die Methoden arbeiten mit Konfigurationen der OCR-Engine, wie zum Beispiel Blacklist und Whitelist. Mehrere Sprachen, einschließlich Chinesisch, Japanisch, Koreanisch und Lateinisches Alphabet, werden in allen Methoden unterstützt, außer in der ReadPassport
-Methode. Bitte beachten Sie, dass jede Sprache ein zusätzliches Sprachpaket erfordert, 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. Erfahren Sie mehr im folgenden Leitfaden zur Fehlerbehebung: "Erweiterter Scan auf .NET Framework."
Dokument lesen Beispiel
Die ReadDocument
-Methode ist eine robuste Dokumentlesemethode, die sich auf gescannte Dokumente oder Fotos von Papierdokumenten mit viel Text spezialisiert. Die PageSegmentationMode-Konfiguration ist sehr wichtig beim Lesen von Textdokumenten mit unterschiedlichen Layouts. Zum Beispiel könnten die Typen SingleBlock und SparseText viele Informationen aus der Tabellenlayoutstruktur 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 Basispakets IronOCR und erfordern die Installation des Pakets IronOcr.Extensions.AdvancedScan. Derzeit ist diese Erweiterung nur unter Windows verfügbar.
Beispiel Nummernschild lesen
Die ReadLicensePlate
-Methode 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 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
Beispiel für einen Reisepass lesen
Die ReadPassport
-Methode ist optimiert für das Lesen und extrahiert Passinformationen aus Passfotos, indem sie die maschinenlesbare Zone (MRZ) scannt. 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 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 zum Beispiel 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 ReadScreenShot
-Methode ist für das Lesen von Screenshots optimiert, die schwer lesbaren Text enthalten. Ähnlich der ReadPhoto-Methode gibt sie 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)