Wie man Text aus Bildern mit Tesseract erhält
Die Verwendung von Bibliotheken wie IronOCR und Tesseract bietet Entwicklern Zugang zu fortschrittlichen Algorithmen und maschinellen Lerntechniken zur Extraktion von Textinformationen aus Bildern und gescannten Dokumenten. Dieses Tutorial zeigt den Lesern, wie sie die Tesseract-Bibliothek zur Textextraktion aus Bildern verwenden können und endet mit einer Einführung in IronOCRs einzigartigen Ansatz.
1. OCR mit Tesseract
1.1. Tesseract installieren
Verwenden Sie die NuGet Package Manager-Konsole, um den folgenden Befehl einzugeben:
Install-Package Tesseract
Oder laden Sie das Paket über den NuGet Package Manager herunter.
Installieren Sie das Paket Tesseract im NuGet -Paketmanager.
Sie müssen die Sprachdateien manuell im Projektordner installieren und speichern, nachdem Sie das NuGet-Paket installiert haben. Dies kann als ein Nachteil dieser speziellen Bibliothek betrachtet werden.
Besuchen Sie die folgende Website, um die Sprachdateien herunterzuladen. Nach dem Herunterladen entpacken Sie die Dateien und fügen den Ordner "tessdata" in Ihren Debug-Ordner des Projekts hinzu.
1.2. Verwendung von Tesseract (Schnellstart)
Die OCR auf einem gegebenen Bild kann mit dem folgenden Quellcode durchgeführt werden:
using Tesseract;
class Program
{
static void Main()
{
// Initialize Tesseract engine with English language data
using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
// Load the image to be processed
using var img = Pix.LoadFromFile("Demo.png");
// Process the image to extract text
using var res = ocrEngine.Process(img);
// Output the recognized text
Console.WriteLine(res.GetText());
Console.ReadKey();
}
}
using Tesseract;
class Program
{
static void Main()
{
// Initialize Tesseract engine with English language data
using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
// Load the image to be processed
using var img = Pix.LoadFromFile("Demo.png");
// Process the image to extract text
using var res = ocrEngine.Process(img);
// Output the recognized text
Console.WriteLine(res.GetText());
Console.ReadKey();
}
}
Imports Tesseract
Friend Class Program
Shared Sub Main()
' Initialize Tesseract engine with English language data
Dim ocrEngine = New TesseractEngine("tessdata", "eng", EngineMode.Default)
' Load the image to be processed
Dim img = Pix.LoadFromFile("Demo.png")
' Process the image to extract text
Dim res = ocrEngine.Process(img)
' Output the recognized text
Console.WriteLine(res.GetText())
Console.ReadKey()
End Sub
End Class
- Zuerst muss ein
TesseractEngineObjekt erstellt werden, um die Sprachdaten in die Engine zu laden. - Die gewünschte Bilddatei wird dann mithilfe von
Pix.LoadFromFilegeladen. - Das Bild wird an die
TesseractEngineübergeben, um mithilfe der MethodeProcessText zu extrahieren. Der erkannte Text wird mit der MethodeGetTextabgerufen und auf der Konsole ausgegeben.
Extrahierter Text aus dem Bild
1.3 Tesseract Überlegungen
- Tesseract unterstützt die Textausgabeformatierung, OCR-Positionsdaten und Seitenlayoutanalyse ab Version 3.00.
- Tesseract ist auf Windows, Linux und MacOS verfügbar, obwohl es hauptsächlich auf Windows und Ubuntu wie beabsichtigt funktioniert, aufgrund der begrenzten Entwicklungsunterstützung.
- Tesseract kann zwischen monospaced und proportional spaced Text unterscheiden.
- Mit einem Frontend wie OCRopus ist Tesseract ideal als Backend geeignet und kann für anspruchsvollere OCR-Aufgaben wie Layoutanalysen verwendet werden.
- Einige der Mängel von Tesseract:
- Die neuesten Builds wurden nicht für die Kompilierung auf Windows entworfen
- Die C#-API-Wrapper von Tesseract werden selten gewartet und sind Jahre hinter den neuen Tesseract-Versionen zurück
Um mehr über Tesseract in C# zu erfahren, besuchen Sie bitte das Tesseract-Tutorial.
2. OCR mit IronOCR
2.1. Installation von IronOCR
Geben Sie den nächsten Befehl in die NuGet Package Manager-Konsole ein:
Install-Package IronOcr
Oder installieren Sie die IronOCR-Bibliothek über den NuGet Package Manager, zusammen mit zusätzlichen Paketen für andere Sprachen, die einfach und bequem zu verwenden sind.
Installieren Sie IronOCR und Sprachpakete über den NuGet Package Manager
2.2. IronOCR verwenden
Unten finden Sie einen Beispielcode, um den Text aus dem angegebenen Bild zu erkennen:
using IronOcr;
class Program
{
static void Main()
{
// Create an IronTesseract instance with predefined settings
var ocr = new IronTesseract()
{
Language = OcrLanguage.EnglishBest,
Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
};
// Create an OcrInput instance for image processing
using var input = new OcrInput();
// Load the image to be processed
input.AddImage("Demo.png");
// Process the image and extract text
var result = ocr.Read(input);
// Output the recognized text
Console.WriteLine(result.Text);
Console.ReadKey();
}
}
using IronOcr;
class Program
{
static void Main()
{
// Create an IronTesseract instance with predefined settings
var ocr = new IronTesseract()
{
Language = OcrLanguage.EnglishBest,
Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
};
// Create an OcrInput instance for image processing
using var input = new OcrInput();
// Load the image to be processed
input.AddImage("Demo.png");
// Process the image and extract text
var result = ocr.Read(input);
// Output the recognized text
Console.WriteLine(result.Text);
Console.ReadKey();
}
}
Imports IronOcr
Friend Class Program
Shared Sub Main()
' Create an IronTesseract instance with predefined settings
Dim ocr = New IronTesseract() With {
.Language = OcrLanguage.EnglishBest,
.Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
}
' Create an OcrInput instance for image processing
Dim input = New OcrInput()
' Load the image to be processed
input.AddImage("Demo.png")
' Process the image and extract text
Dim result = ocr.Read(input)
' Output the recognized text
Console.WriteLine(result.Text)
Console.ReadKey()
End Sub
End Class
- Dieser Code initialisiert ein
IronTesseractObjekt und legt dabei die Sprache und die Tesseract-Version fest. Anschließend wird einOcrInputObjekt erstellt, um Bilddateien mit der MethodeAddImagezu laden. Die MethodeReadvonIronTesseractverarbeitet das Bild und extrahiert den Text, der dann auf der Konsole ausgegeben wird.
Extrahierte Textausgabe mit der IronOCR-Bibliothek
2.3 IronOCR Überlegungen
- IronOCR ist eine Erweiterung der Tesseract-Bibliothek, die mehr Stabilität und höhere Genauigkeit bietet.
- IronOCR kann Textinhalte aus PDFs und Fotos lesen. Es kann auch mehr als 20 verschiedene Arten von Barcodes und QR-Codes lesen.
- Die Ausgabe kann entweder als Klartext, strukturierte Daten, Barcodes oder QR-Codes wiedergegeben werden.
- Die Bibliothek erkennt weltweit 125 Sprachen.
- IronOCR arbeitet flexibel in allen .NET-Umgebungen (Konsole, Web, Desktop usw.) und unterstützt auch die neuesten mobilen Frameworks wie Mono, Xamarin, Azure und MAUI.
- IronOCR bietet eine kostenlose Testversion und hat eine preisgünstigere Entwicklerversion. Erfahren Sie mehr über die Lizenzierung.
Für ein detailliertes IronOCR-Tutorial lesen Sie diesen Artikel, um Text aus einem Bild in C# zu lesen.




