Wie man bestimmte Dokumente liest

This article was translated from English: Does it need improvement?
Translated
View the article in English

von Chaknith Bin

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.


C# NuGet-Bibliothek für OCR

Installieren mit NuGet

Install-Package IronOcr
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

C# NuGet-Bibliothek für OCR

Installieren mit NuGet

Install-Package IronOcr
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

Fangen Sie noch heute an, IronPDF in Ihrem Projekt mit einer kostenlosen Testversion zu verwenden.

Erster Schritt:
green arrow pointer

Schau dir an IronOCR an Nuget Für schnelle Installation und Bereitstellung. Mit über 8 Millionen Downloads verwandelt es OCR mit C#.

C# NuGet-Bibliothek für OCR nuget.org/packages/IronOcr/
Install-Package IronOcr

Erwägen Sie die Installation der IronOCR DLL direkt. Laden Sie es herunter und installieren Sie es manuell für Ihr Projekt oder die GAC-Form: IronOcr.zip

Manuelle Installation in Ihr Projekt

DLL herunterladen

Ü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)
VB   C#

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
VB   C#

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)
VB   C#

Ergebnis

Reisepass lesen

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
VB   C#

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)
VB   C#

Chaknith Bin

Software-Ingenieur

Chaknith ist der Sherlock Holmes der Entwickler. Zum ersten Mal kam ihm der Gedanke, dass er eine Zukunft in der Softwareentwicklung haben könnte, als er zum Spaß an Code Challenges teilnahm. Sein Schwerpunkt liegt auf IronXL und IronBarcode, aber er ist stolz darauf, Kunden mit jedem Produkt zu helfen. Chaknith nutzt sein Wissen aus direkten Gesprächen mit Kunden, um die Produkte selbst weiter zu verbessern. Sein anekdotisches Feedback geht über Jira-Tickets hinaus und unterstützt die Produktentwicklung, die Dokumentation und das Marketing, um das Gesamterlebnis der Kunden zu verbessern.Wenn er nicht im Büro ist, lernt er über maschinelles Lernen, programmiert und wandert.