Die Technologie der optischen Zeichenerkennung (OCR) ermöglicht die Umwandlung von Text in digitale Formate, die von Maschinen gelesen werden können. Wenn ein Dokument (wie eine Rechnung oder Quittung) gescannt wird, speichert Ihr Computer es als Bilddatei. Der Text innerhalb des gescannten Bildes kann jedoch mit einem regulären Texteditor nicht bearbeitet, durchsucht oder gezählt werden.
OCR kann jedoch das Bild verarbeiten, Text extrahieren und in ein Textformat umwandeln, das von Computern gelesen werden kann. Dies ermöglicht die Extraktion von Text aus verschiedenen Quellen, einschließlich PDF-Dateien und anderen gescannten Bildern. Darüber hinaus gehen die OCR-Funktionen über die einfache Textextraktion hinaus und umfassen die wichtigsten Bildformate und PDF-Dokumente, die in durchsuchbare OCR-Daten umgewandelt werden.
In C# können Entwickler die Leistungsfähigkeit der OCR über verschiedene Bibliotheken nutzen, und eine davon ist die leistungsstarke Bibliothek IronOCR von Iron Software. In diesem Tutorial werden wir die Grundlagen der OCR erkunden und demonstrieren, wie man IronOCR verwendet, um die Zeichenerkennung effizient in C# durchzuführen.
Wie man Zeichenerkennung in C# erstellt;
Erstellen Sie ein brandneues C#-Projekt und benennen Sie es in Visual Studio.
Installieren Sie die IronOCR .NET-Bibliothek und fügen Sie sie dem Projektordner hinzu.
Verwenden Sie das IronOCR Tesseract, um Text aus Bildern zu lesen.
Nutzen Sie die IronOCR Advanced-Funktionen, um den Text in Bildern zu lesen
IronOCR, eine C#-Bibliothek, die von Iron Software entwickelt wurde, bietet fortschrittliche OCR-Fähigkeiten. Es bietet eine genaue Textextraktion aus Bildern, PDFs und gescannten Dokumenten. Bevor wir in den Code eintauchen, stellen Sie sicher, dass Sie IronOCR in Ihrem Projekt installiert haben.
IronOCR verbessert die Fähigkeiten der weit verbreiteten Tesseract OCR-Engine, indem es sowohl die Genauigkeit als auch die Geschwindigkeit erhöht. Es dient als robuste Lösung für die Extraktion von Text aus verschiedenen Quellen, einschließlich Bildern, PDFs und diversen Dokumentenformaten.
Breite Sprachabdeckung
Mit der Unterstützung von mehr als 127 Sprachen ist IronOCR in der Lage, mehrsprachige Anforderungen zu erfüllen, und ist damit die ideale Wahl für Anwendungen, die sprachliche Vielseitigkeit erfordern.
Vielseitige Ausgabemöglichkeiten
Der extrahierte Text kann bequem als reiner Text oder als strukturierte Daten ausgegeben werden, um eine nahtlose Integration in weitere Verarbeitungspipelines zu ermöglichen. Darüber hinaus erleichtert IronOCR die Erstellung von durchsuchbaren PDF-Dateien direkt aus Bilddaten.
Plattformübergreifende Anpassungsfähigkeit
IronOCR wurde für die Kompatibilität mit C#, F# und VB.NET entwickelt und funktioniert nahtlos in verschiedenen .NET-Umgebungen, einschließlich der Versionen 8, 7, 6, Core, Standard und Framework.
Nutzung von Tesseract 5
IronOCR nutzt die Leistung von Tesseract 5, das speziell für optimale Leistung innerhalb des .NET-Ökosystems angepasst wurde.
Zonenbasierte OCR-Fähigkeit
Mit IronOCR können Benutzer bestimmte Bereiche innerhalb von Dokumenten genau definieren und so eine gezielte OCR-Verarbeitung ermöglichen. Diese Funktion verbessert die Genauigkeit und Effizienz, indem sie die Verarbeitungsleistung auf die Bereiche konzentriert, in denen sie am meisten benötigt wird.
Bildvorverarbeitungs-Tools
Die Bibliothek bietet eine Reihe von Funktionen zur Bildvorverarbeitung, wie z. B. De-Skewing und Rauschunterdrückung. Diese Werkzeuge gewährleisten selbst bei unvollkommenen Quellbildern hervorragende Ergebnisse und verbessern so die OCR-Erfahrung insgesamt.
Jetzt werden wir eine Demo-Anwendung entwickeln, die IronOCR zum Lesen von Text aus Bildern verwendet.
Voraussetzungen
Visual Studio: Stellen Sie sicher, dass Sie Visual Studio oder eine andere C#-Entwicklungsumgebung installiert haben.
NuGet-Paket-Manager: Stellen Sie sicher, dass NuGet vorhanden ist, um Pakete in Ihrem Projekt zu verwalten.
Schritt 1: Erstellen eines neuen C# Projekts in Visual Studio
Lassen Sie uns zunächst eine neue Konsolenanwendung mit Visual Studio erstellen (siehe unten).
Geben Sie unten den Projektnamen und den Standort an.
Wählen Sie die gewünschte .NET-Version für das Projekt aus.
Klicken Sie auf die Schaltfläche Erstellen, um das neue Projekt zu erstellen.
Schritt 2: Installieren Sie die IronOCR-Bibliothek und integrieren Sie sie in Ihr Projekt.
IronOCR ist im NuGet-Paket-Manager-Konsolen wie unten gezeigt zu finden. Verwenden Sie den angegebenen Befehl, um das Paket zu installieren.
Suchen Sie mit dem Visual Studio NuGet Package Manager nach IronOCR und installieren Sie es in Ihrem Projektordner.
Sobald die Anwendung installiert ist, ist sie bereit, IronOCR zu verwenden, um Text aus Bildern zu lesen.
Schritt 3: Verwenden Sie den IronOCR Tesseract, um Text aus Bildern zu lesen.
IronOCR ist die einzige .NET-Bibliothek, die OCR-Funktionen von Tesseract 5 bietet. Gegenwärtig gilt sie als die anspruchsvollste Tesseract-5-Bibliothek in allen Programmiersprachen. IronOCR integriert Tesseract 5 nahtlos in verschiedene .NET-Umgebungen, darunter Framework, Standard, Core, Xamarin und Mono, und gewährleistet so eine umfassende Unterstützung des gesamten Ökosystems.
Betrachten Sie die folgende Bilddatei als Eingabe. Nun wollen wir sehen, wie man den Text in dieser Bilddatei lesen kann
using IronOcr;
public class Program
{
public static void Main(String [] args)
{
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"sample1.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
}
using IronOcr;
public class Program
{
public static void Main(String [] args)
{
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"sample1.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
}
Imports IronOcr
Public Class Program
Public Shared Sub Main(ByVal args() As String)
Dim ocrTesseract = New IronTesseract()
Dim ocrInput As New OcrInput()
ocrInput.LoadImage("sample1.png")
Dim ocrResult = ocrTesseract.Read(ocrInput)
Console.WriteLine(ocrResult.Text)
End Sub
End Class
$vbLabelText $csharpLabel
Code Erläuterung
Wir beginnen mit der Erstellung von IronTesseract mit der erforderlichen Konfiguration
Dann laden wir das gezeigte Beispielbild in das OcrInput-Objekt
Schließlich lesen wir den Text im Bild und geben ihn auf der Konsole aus
Ausgabe
Schritt 4: Nutzen Sie die erweiterten Funktionen von IronOCR, um den Text in Bildern zu lesen
Das IronTesseract.Configuration-Objekt bietet fortgeschrittenen Anwendern Zugriff auf die zugrundeliegende Tesseract-API in C#/.NET und ermöglicht eine detaillierte Konfiguration der Einstellungen zur Feinabstimmung und Optimierung. Im Folgenden finden Sie einige der möglichen erweiterten Konfigurationen
Sprachauswahl
Mit der Eigenschaft Sprache können Sie die Sprache für die OCR festlegen. Um zum Beispiel die Sprache auf Englisch einzustellen, verwenden Sie:
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.English
$vbLabelText $csharpLabel
Seitensegmentierungsmodus
Der PageSegmentationMode bestimmt, wie Tesseract das Eingabebild segmentiert. Zu den Optionen gehören AutoOsd, SingleBlock, SingleLine und weitere. Zum Beispiel:
Versuchen wir nun, das gleiche Bild mit erweiterten Einstellungen zu dekodieren
using IronOcr;
public class Program
{
public static void Main()
{
Console.WriteLine("Decoding using advanced features");
var ocrTesseract = new IronTesseract() // create instance
{
Language = OcrLanguage.EnglishBest, // configure best english language
Configuration = new TesseractConfiguration()
{
ReadBarCodes = false, // read bar codes false
BlackListCharacters = "`ë
^", // black listed characters
WhiteListCharacters = null, // no white list, allow all
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
TesseractVariables = null, // no custom variable used
},
MultiThreaded = false,
};
using var ocrInput = new OcrInput(); // create a disposible ocr input object
ocrInput.AddImage(@"sample1.png"); // load the sample image
var ocrResult = ocrTesseract.Read(ocrInput); // read the text from the image
Console.WriteLine(ocrResult.Text);// output the image
}
}
using IronOcr;
public class Program
{
public static void Main()
{
Console.WriteLine("Decoding using advanced features");
var ocrTesseract = new IronTesseract() // create instance
{
Language = OcrLanguage.EnglishBest, // configure best english language
Configuration = new TesseractConfiguration()
{
ReadBarCodes = false, // read bar codes false
BlackListCharacters = "`ë
^", // black listed characters
WhiteListCharacters = null, // no white list, allow all
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
TesseractVariables = null, // no custom variable used
},
MultiThreaded = false,
};
using var ocrInput = new OcrInput(); // create a disposible ocr input object
ocrInput.AddImage(@"sample1.png"); // load the sample image
var ocrResult = ocrTesseract.Read(ocrInput); // read the text from the image
Console.WriteLine(ocrResult.Text);// output the image
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText $csharpLabel
Code Erläuterung
IronOCR-Konfiguration: Eine Instanz von IronTesseract (die Hauptklasse von IronOCR) wird erstellt und der Variablen ocrTesseract zugewiesen.
Die Konfigurationseinstellungen werden auf ocrTesseract angewendet:
Sprache: Legt die Sprache für OCR fest (in diesem Fall Englisch).
Konfiguration: Ein TesseractConfiguration-Objekt, das weitere Anpassungen ermöglicht:
Barcodes lesen: Deaktiviert das Lesen von Barcodes.
BlackListCharacters: Gibt Zeichen an, die auf die schwarze Liste gesetzt werden sollen (Zeichen, die nicht erkannt werden sollen).
WhiteListCharacters: Keine Whitelist angegeben, alle Zeichen erlaubt.
PageSegmentationMode: Setzt den Seitensegmentierungsmodus auf "AutoOsd"
TesseractVariablen: Es wurden keine benutzerdefinierten Variablen verwendet.
MultiThreaded: Deaktiviert Multithreading.
OCR-Eingabe und Bildladen: Ein using-Block erstellt ein entsorgbares ocrInput-Objekt vom Typ OcrInput. Die Bilddatei "sample1.png" wird zu ocrInput hinzugefügt.
Textextraktion: Die Read-Methode wird auf ocrTesseract aufgerufen, wobei ocrInput übergeben wird.
Das Ergebnis wird in der Variablen ocrResult gespeichert.
Ausgabe: Der extrahierte Text wird mit Console.WriteLine(ocrResult.Text) in die Konsole gedruckt.
Ausgabe
Schritt 5: Leistungsoptimierung des IronOCR-Lesevorgangs.
Wenn Sie mit IronOCR arbeiten, haben Sie Zugriff auf verschiedene Bildfilter, die bei der Vorverarbeitung von Bildern helfen können, bevor Sie die OCR durchführen. Diese Filter optimieren die Bildqualität, verbessern die Sichtbarkeit und reduzieren Rauschen oder Artefakte. Sie tragen dazu bei, die Leistung der OCR-Operation zu verbessern.
Drehen:
Mit dem Filter Drehen können Sie Bilder um eine bestimmte Anzahl von Grad im Uhrzeigersinn drehen. Für eine Drehung gegen den Uhrzeigersinn verwenden Sie negative Zahlen.
Schräglagenkorrektur:
Der Deskew-Filter korrigiert die Schräglage des Bildes und sorgt dafür, dass der Text aufrecht und orthogonal ist. Dies ist besonders nützlich für OCR, da Tesseract am besten mit korrekt ausgerichteten Scans funktioniert.
Skalierung:
Der Skalierungsfilter skaliert OCR-Eingabeseiten proportional.
Binarisieren:
Der Binarisierungsfilter wandelt jedes Pixel entweder in Schwarz oder Weiß um, ohne einen Mittelweg zu finden. Sie kann die OCR-Leistung in Fällen mit sehr geringem Kontrast zwischen Text und Hintergrund verbessern.
ToGrayScale:
Der Filter ToGrayScale wandelt jedes Pixel in einen Graustufenwert um. Es ist zwar unwahrscheinlich, dass sich dadurch die OCR-Genauigkeit signifikant verbessert, aber es kann die Geschwindigkeit erhöhen.
Invertieren:
Der Filter "Invertieren" kehrt die Farben um - aus Weiß wird Schwarz und aus Schwarz wird Weiß.
ReplaceColor:
Der ReplaceColor-Filter ersetzt eine bestimmte Farbe innerhalb eines Bildes durch eine andere Farbe unter Berücksichtigung eines bestimmten Schwellenwertes.
Kontrast:
Der Kontrastfilter erhöht automatisch den Kontrast. Er verbessert oft die OCR-Geschwindigkeit und -Genauigkeit bei kontrastarmen Scans.
Dilate und Erode:
Diese fortschrittlichen Morphologiefilter manipulieren Objektgrenzen in einem Bild.
Dilate fügt Pixel zu den Objektgrenzen hinzu.
Erode entfernt Pixel von Objektgrenzen.
Schärfen:
Der Filter Scharfzeichnen schärft unscharfe OCR-Dokumente und reduziert Alphakanäle auf Weiß.
DeNoise:
Der DeNoise-Filter beseitigt digitales Rauschen. Verwenden Sie ihn dort, wo Rauschen zu erwarten ist.
DeepCleanBackgroundNoise:
Dieser Filter zur Entfernung von starkem Hintergrundrauschen sollte nur verwendet werden, wenn extremes Hintergrundrauschen in den Dokumenten bekannt ist. Es kann die OCR-Genauigkeit für saubere Dokumente verringern und ist CPU-intensiv.
AuflösungVerbessern:
Der Filter EnhanceResolution verbessert die Auflösung von Bildern geringer Qualität. Aufgrund der automatischen Auflösungsbehandlung ist dies nicht oft erforderlich.
Hier ist ein Beispiel für die Anwendung von Filtern mit IronOCR in C#:
var ocr = new IronTesseract();
var input = new OcrInput();
input.LoadImage("sample.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
var ocr = new IronTesseract();
var input = new OcrInput();
input.LoadImage("sample.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Dim ocr = New IronTesseract()
Dim input = New OcrInput()
input.LoadImage("sample.png")
input.Deskew()
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
$vbLabelText $csharpLabel
Gemeinsame OCR-Anwendungen
Dokumentendigitalisierung: OCR wird häufig verwendet, um gescannte Papierdokumente, wie Rechnungen, Belege, Formulare und Verträge, in digitale Formate umzuwandeln. Dieser Digitalisierungsprozess rationalisiert die Speicherung, den Abruf und die Verwaltung von Dokumenten, reduziert die Papierflut und verbessert die Effizienz.
Datenextraktion: OCR ermöglicht die Extraktion von Text und Daten aus gescannten Dokumenten, Bildern und PDFs. Diese extrahierten Daten können für die automatische Dateneingabe, die Inhaltsanalyse, die Indexierung und die Integration in Datenbanken oder Geschäftssysteme verwendet werden.
Texterkennung in Bildern: Die OCR-Technologie ermöglicht das Extrahieren von Text aus gedruckten Dokumenten und Bildern für Indexierungs- und Suchzwecke. Diese Fähigkeit wird in verschiedenen Anwendungen genutzt, darunter Augmented Reality, bildbasierte Suchmaschinen und Übersetzungsdienste.
Automatische Kennzeichenerkennung (ALPR): ALPR-Systeme nutzen OCR, um Kfz-Kennzeichen aus Bildern oder Videostreams zu lesen, die von Kameras in Verkehrsüberwachung, Parkraummanagement, Mauterfassung und Anwendungen zur Strafverfolgung erfasst werden.
Barrierefreie Lösungen: OCR spielt eine entscheidende Rolle bei der Erstellung von zugänglichen Inhalten für Personen mit Sehbehinderungen. Durch die Umwandlung von Text aus Bildern oder Dokumenten in Sprache oder Blindenschrift hilft OCR, Informationen für Menschen mit Behinderungen zugänglich zu machen.
Identitätsprüfung: OCR-Technologie wird in Identitätsprüfungsprozessen eingesetzt, beispielsweise beim Scannen und Verarbeiten von Ausweisdokumenten wie Pässen, Führerscheinen und Ausweisen. Es hilft bei der Überprüfung der Echtheit von Dokumenten und bei der Extraktion relevanter Informationen für die Identitätsprüfung.
Bankwesen und Finanzen: OCR wird im Bankwesen und in den Finanzen für Aufgaben wie das Lesen von Schecks, die Verarbeitung von Rechnungen, die Umwandlung eines bestehenden PDF-Dokuments, die Extraktion von Daten aus Finanzunterlagen und die Automatisierung dokumentenbasierter Workflows zur Verbesserung der Genauigkeit und Effizienz in Finanzoperationen verwendet.
Automatisierte Übersetzung: OCR-Technologie ist in Übersetzungswerkzeuge und Sprachlern-Apps integriert, um gedruckten Text von einer Sprache in eine andere zu konvertieren. Die Benutzer können den Text mit ihren Geräten erfassen, und die OCR hilft bei der Übersetzung in die gewünschte Sprache in Echtzeit.
Archivierung und Erhaltung historischer Dokumente: OCR wird zur Digitalisierung von Archivmaterialien und historischen Dokumenten verwendet, um sie in digitalen Formaten für zukünftigen Zugriff, Forschung und Analyse zu bewahren, während die Erhaltung wertvollen Kulturerbes sichergestellt wird.
Lizenzanforderungen
IronOCR. Geben Sie die folgenden Details an, um den Schlüssel an Ihre E-Mail-ID zu erhalten
Sobald Sie den Schlüssel entweder durch Kauf oder durch eine kostenlose Testversion erhalten haben, führen Sie die folgenden Schritte aus, um den Schlüssel zu verwenden
Festlegen Ihres Lizenzschlüssels: Setzen Sie Ihren IronOCR-Lizenzschlüssel mithilfe des Codes. Fügen Sie die folgende Zeile zu Ihrem Anwendungsstart hinzu (bevor Sie IronOCR verwenden):
Globaler Anwendungsschlüssel (Web.Config oder App.Config): Um einen Schlüssel global in Ihrer Anwendung anzuwenden, verwenden Sie die Konfigurationsdatei (Web.Config oder App.Config). Fügen Sie den folgenden Schlüssel zu Ihren appSettings hinzu:
Verwendung von .NET Core appsettings.json: Für .NET Core-Anwendungen erstellen Sie eine appsettings.json-Datei im Stammverzeichnis Ihres Projekts. Ersetzen Sie den Schlüssel "IronOcr.LicenseKey" durch Ihren Lizenzwert:
Bevor er Software-Ingenieur wurde, promovierte Kannapat an der Universität Hokkaido in Japan im Bereich Umweltressourcen. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Abteilung für Bioproduktionstechnik ist. Im Jahr 2022 wechselte er mit seinen C#-Kenntnissen zum Engineering-Team von Iron Software, wo er sich auf IronPDF konzentriert. Kannapat schätzt an seiner Arbeit, dass er direkt von dem Entwickler lernt, der den Großteil des in IronPDF verwendeten Codes schreibt. Neben dem kollegialen Lernen genießt Kannapat auch den sozialen Aspekt der Arbeit bei Iron Software. Wenn er nicht gerade Code oder Dokumentationen schreibt, kann man Kannapat normalerweise beim Spielen auf seiner PS5 oder beim Wiedersehen mit The Last of Us antreffen.
< PREVIOUS OCR der Fahrzeugzulassung in C# durchführen
NÄCHSTES > Lesen von Identitätsdokumenten mit OCR in C#