Zum Fußzeileninhalt springen
OCR-WERKZEUGE

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.

So erhalten Sie OCR-Texterkennung, Abbildung 1: Installieren Sie das Tesseract-Paket im NuGet Paketmanager 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
$vbLabelText   $csharpLabel
  • Zuerst muss ein TesseractEngine Objekt erstellt werden, um die Sprachdaten in die Engine zu laden.
  • Die gewünschte Bilddatei wird dann mithilfe von Pix.LoadFromFile geladen.
  • Das Bild wird an die TesseractEngine übergeben, um mithilfe der Methode Process Text zu extrahieren. Der erkannte Text wird mit der Methode GetText abgerufen und auf der Konsole ausgegeben.

So erhalten Sie OCR-Texterkennung, Abbildung 2: Aus dem Bild extrahierter Text Extrahierter Text aus dem Bild

1.3 Tesseract Überlegungen

  1. Tesseract unterstützt die Textausgabeformatierung, OCR-Positionsdaten und Seitenlayoutanalyse ab Version 3.00.
  2. 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.
  3. Tesseract kann zwischen monospaced und proportional spaced Text unterscheiden.
  4. Mit einem Frontend wie OCRopus ist Tesseract ideal als Backend geeignet und kann für anspruchsvollere OCR-Aufgaben wie Layoutanalysen verwendet werden.
  5. 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.

So erhalten Sie OCR-Texterkennung, Abbildung 3: Installieren Sie IronOCR und Sprachpakete über den NuGet Paketmanager 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
$vbLabelText   $csharpLabel
  • Dieser Code initialisiert ein IronTesseract Objekt und legt dabei die Sprache und die Tesseract-Version fest. Anschließend wird ein OcrInput Objekt erstellt, um Bilddateien mit der Methode AddImage zu laden. Die Methode Read von IronTesseract verarbeitet das Bild und extrahiert den Text, der dann auf der Konsole ausgegeben wird.

So erhalten Sie OCR-Texterkennung, Abbildung 4: Extrahierter Text mithilfe der IronOCR Bibliothek Extrahierte Textausgabe mit der IronOCR-Bibliothek

2.3 IronOCR Überlegungen

  1. IronOCR ist eine Erweiterung der Tesseract-Bibliothek, die mehr Stabilität und höhere Genauigkeit bietet.
  2. IronOCR kann Textinhalte aus PDFs und Fotos lesen. Es kann auch mehr als 20 verschiedene Arten von Barcodes und QR-Codes lesen.
  3. Die Ausgabe kann entweder als Klartext, strukturierte Daten, Barcodes oder QR-Codes wiedergegeben werden.
  4. Die Bibliothek erkennt weltweit 125 Sprachen.
  5. 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.
  6. 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.

Kannaopat Udonpant
Software Ingenieur
Bevor er Software-Ingenieur wurde, absolvierte Kannapat ein PhD in Umweltressourcen an der Hokkaido University in Japan. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Fakultät für Bioproduktionstechnik ist. Im Jahr 2022 nutzte er seine C#-Kenntnisse, um dem Engineering-Team von Iron Software ...
Weiterlesen

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an