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.

Wie man OCR-Texterkennung erhält, Abbildung 1: Tesseract-Paket im NuGet-Paketmanager installieren Installieren Sie das Tesseract-Paket im NuGet Package Manager

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. Tesseract verwenden (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, das die Sprachdaten in die Engine lädt.
  • Die gewünschte Bilddatei wird dann mit Hilfe von Pix.LoadFromFile geladen.
  • Das Bild wird in die TesseractEngine gegeben, um Text mit der Process-Methode zu extrahieren.
  • Der erkannte Text wird mit der GetText-Methode erhalten und in der Konsole ausgegeben.

Wie man OCR-Texterkennung erhält, Abbildung 2: Extrahierter Text aus dem Bild 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.

Wie man OCR-Texterkennung erhält, Abbildung 3: IronOcr und Sprachpakete über den NuGet Package Manager installieren 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 richtet Sprache und Tesseract-Version ein.
  • Ein OcrInput-Objekt wird erstellt, um Bilddateien mit der AddImage-Methode zu laden.
  • Die Read-Methode von IronTesseract verarbeitet das Bild und extrahiert den Text, der dann in der Konsole ausgegeben wird.

Wie man OCR-Texterkennung erhält, Abbildung 4: Extrahierte Textausgabe mit 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 works in all .NET environments flexibly (console, Web, desktop, etc.), and also supports the latest mobile frameworks such as Mono, Xamarin, Azure, and 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