Durch den Einsatz von Bibliotheken wie IronOCR und Tesseract erhalten Entwickler Zugang zu fortschrittlichen Algorithmen und maschinellen Lerntechniken für die Extraktion von Textinformationen aus Bildern und gescannten Dokumenten. Dieses Tutorial zeigt den Lesern, wie man die Tesseract-Bibliothek zur Textextraktion aus Bildern verwendet, und stellt abschließend den einzigartigen Ansatz von IronOCR vor.
1. OCR mit Tesseract
1.1. Tesseract installieren
Geben Sie in der NuGet-Paketmanager-Konsole den folgenden Befehl ein.
Install-Package Tesseract
Oder laden Sie das Paket über den NuGet Package Manager herunter.
Installieren Sie das Tesseract-Paket im NuGet-Paket-Manager
Sie müssen die Sprachdateien nach der Installation des NuGet-Pakets manuell installieren und im Projektordner speichern. Dies kann als ein Manko dieser speziellen Bibliothek angesehen werden.
Besuchen Sie die folgende Website, um die Sprachdateien herunterzuladen. Nach dem Herunterladen entpacken Sie die Dateien und fügen den Ordner "tessdata" dem Debug-Ordner Ihres Projekts hinzu.
1.2. Tesseract benutzen (Schnellstart)
OCR für ein bestimmtes Bild kann mit dem unten stehenden Quellcode durchgeführt werden:
using Tesseract;
var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
var img = Pix.LoadFromFile("Demo.png");
var res = ocrEngine.Process(img);
Console.WriteLine(res.GetText());
Console.ReadKey();
using Tesseract;
var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
var img = Pix.LoadFromFile("Demo.png");
var res = ocrEngine.Process(img);
Console.WriteLine(res.GetText());
Console.ReadKey();
Imports Tesseract
Private ocrEngine = New TesseractEngine("tessdata", "eng", EngineMode.Default)
Private img = Pix.LoadFromFile("Demo.png")
Private res = ocrEngine.Process(img)
Console.WriteLine(res.GetText())
Console.ReadKey()
$vbLabelText $csharpLabel
Zuerst muss ein TerreractEngine-Objekt erstellt werden, und die Sprachdaten müssen in die Engine geladen werden. Dann wird die gewünschte Bilddatei mit Hilfe von Tesseract Pix geladen. Anschließend wird dieses Bild in die TerreractEngine übergeben, um den korrekt erkannten Text mithilfe der im TesseractEngine verfügbaren GetText-Methode zu extrahieren. Dies ist die Ausgabe des Codes.
Aus dem Bild extrahierter Text
1.3 Überlegungen zum Tesserakt
Tesseract unterstützt ab Version 3.00 die Formatierung von Ausgabetext, OCR-Positionsdaten und die Analyse des Seitenlayouts.
Tesseract ist für Windows, Linux und Mac OS X verfügbar. Es wurde jedoch bestätigt, dass Tesseract aufgrund der begrenzten Entwicklungsunterstützung nur unter Windows und Ubuntu wie vorgesehen funktioniert.
Tesseract kann zwischen monospaced und proportional spaced Text unterscheiden.
Durch die Verwendung eines Front-Ends wie OCRopus ist Tesseract ideal für den Einsatz als Back-End und kann für anspruchsvollere OCR-Aufgaben, wie z. B. Layout-Analysen, verwendet werden.
Einige der Unzulänglichkeiten von Tesseract:
Die neuesten Builds wurden nicht für die Kompilierung unter Windows entwickelt
Die C#-API-Wrapper von Tesseract werden nur selten gepflegt und hinken neuen Versionen von Tesseract um Jahre hinterher
Geben Sie den folgenden Befehl in die NuGet-Paketmanager-Konsole ein.
Install-Package IronOcr
Sie können die IronOCR-Bibliothek auch über den NuGet Package Manager installieren, zusammen mit zusätzlichen Paketen für andere Sprachen, die einfach und bequem zu verwenden sind.
Installieren Sie IronOcr und Sprachpakete über den NuGet-Paket-Manager
2.2. Verwendung von IronOCR
Nachfolgend finden Sie einen Beispielcode zur Erkennung des Textes aus dem angegebenen Bild.
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;
ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var input = new OcrInput())
{
input.LoadImage(@"Demo.png");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Console.ReadKey();
}
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;
ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var input = new OcrInput())
{
input.LoadImage(@"Demo.png");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Console.ReadKey();
}
Dim ocr = New IronTesseract()
ocr.Language = OcrLanguage.EnglishBest
ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using input = New OcrInput()
input.LoadImage("Demo.png")
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
Console.ReadKey()
End Using
$vbLabelText $csharpLabel
Der obige Code instanziiert ein IronTesseract-Objekt. Zusätzlich wird ein OcrInput-Objekt erstellt, um eine oder mehrere Bilddateien hinzuzufügen, wobei der lokale Dateipfad mit der LoadImage-Methode angegeben wird. Sie können so viele Bilder hochladen, wie Sie möchten. Die Funktionalität Read im Objekt IronTesseract wird die Bilddatei analysieren und das Ergebnis in das OCR-Ergebnis extrahieren.
Extrahierter Textausgabe mit der IronOCR-Bibliothek
2.3 IronOCR Überlegungen
IronOCR ist eine Erweiterung der Tesseract-Bibliothek, die für mehr Stabilität und höhere Genauigkeit sorgt.
IronOCR kann Textinhalte aus PDFs und Fotos lesen. IronOCR kann auch mehr als 20 verschiedene Arten von Barcodes und QR-Codes lesen.
Die Ausgabe kann entweder als reiner Text, als strukturierte Daten, als Barcodes oder als QR-Codes erfolgen.
IronOCR funktioniert flexibel in allen .NET-Umgebungen (Konsole, Web, Desktop usw.) und unterstützt auch die neuesten mobilen Frameworks wie Mono, Xamarin, Azure und MAUI.
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 C# Open Source (Liste für Entwickler)
NÄCHSTES > Beste OCR-API (Aktualisierter Listenvergleich)