Texte als Bilder in C#35; mit IronOCR hervorheben

This article was translated from English: Does it need improvement?
Translated
View the article in English

Die Methode HighlightTextAndSaveAsImages von IronOCR visualisiert OCR-Ergebnisse durch das Zeichnen von Begrenzungsrahmen um erkannten Text (Zeichen, Wörter, Zeilen oder Absätze) und speichert sie als Diagnosebilder, so dass Entwickler die OCR-Genauigkeit überprüfen und Erkennungsprobleme beheben können.

Die Visualisierung von OCR-Ergebnissen beinhaltet das Rendern von Begrenzungsrahmen um bestimmte Textelemente, die die Engine in einem Bild erkannt hat. Bei diesem Verfahren werden die genauen Positionen einzelner Zeichen, Wörter, Zeilen oder Absätze hervorgehoben, so dass eine klare Karte des erkannten Inhalts entsteht.

Dieses visuelle Feedback ist entscheidend für die Fehlersuche und die Überprüfung der Genauigkeit der OCR-Ausgabe, da es zeigt, was die Software erkannt hat und wo sie Fehler gemacht hat. Bei der Arbeit mit komplexen Dokumenten oder der Behebung von Erkennungsproblemen wird die visuelle Hervorhebung zu einem wichtigen Diagnoseinstrument.

Dieser Artikel demonstriert die Diagnosefähigkeiten von IronOCR mit seiner HighlightTextAndSaveAsImages-Methode. Diese Funktion hebt bestimmte Textabschnitte hervor und speichert sie als Bilder zur Überprüfung. Ob beim Aufbau eines Dokumentenverarbeitungssystems, bei der Implementierung von Qualitätskontrollmaßnahmen oder bei der Validierung Ihrer OCR-Implementierung - diese Funktion bietet eine sofortige visuelle Rückmeldung darüber, was die OCR-Engine erkennt.

als-Überschrift:2(Schnellstart: Wörter in Ihrem PDF sofort hervorheben)

Dieses Snippet demonstriert die Verwendung von IronOCR: Laden Sie ein PDF-Dokument und markieren Sie jedes Wort im Dokument, um das Ergebnis als Bild zu speichern. Nur eine Zeile, um eine visuelle Rückmeldung über Ihre OCR-Ergebnisse zu erhalten.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronOCR mit dem NuGet-Paketmanager.

    PM > Install-Package IronOcr

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    new IronOcr.OcrInput().LoadPdf("document.pdf").HighlightTextAndSaveAsImages(new IronOcr.IronTesseract(), "highlight_page_", IronOcr.ResultHighlightType.Word);
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronOCR in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

Wie kann ich Text markieren und als Bild speichern?

Das Hervorheben von Text und das Speichern als Bild ist mit IronOCR ganz einfach. Laden Sie eine vorhandene PDF-Datei mit LoadPdf und rufen Sie dann die Methode HighlightTextAndSaveAsImages auf, um Textabschnitte hervorzuheben und als Bilder zu speichern. Diese Technik prüft die OCR-Genauigkeit und behebt Texterkennungsprobleme in Ihren Dokumenten.

Die Methode benötigt drei Parameter: die IronTesseract OCR-Engine, ein Präfix für den Ausgabedateinamen und ein Enum von ResultHighlightType, das die Art des hervorzuhebenden Textes bestimmt. Dieses Beispiel verwendet ResultHighlightType.Paragraph, um Textblöcke als Absätze hervorzuheben.

Hinweis:Diese Funktion verwendet das Präfix für den Ausgabestring und fügt für jede Seite eine Seitenkennung (z. B. "page_0", "page_1") an den Dateinamen des Ausgabebildes an.

In diesem Beispiel wird eine PDF-Datei mit drei Absätzen verwendet.

Wie sieht die Eingabe-PDF aus?

Wie implementiere ich den Hervorhebungscode?

Der nachstehende Beispielcode zeigt die grundlegende Implementierung unter Verwendung der OcrInput-Klasse.

:path=/static-assets/ocr/content-code-examples/how-to/highlight-texts-as-images.cs
using IronOcr;

IronTesseract ocrTesseract = new IronTesseract();

using var ocrInput = new OcrInput();
ocrInput.LoadPdf("document.pdf");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_page_", ResultHighlightType.Paragraph);
Imports IronOcr

Private ocrTesseract As New IronTesseract()

Private ocrInput = New OcrInput()
ocrInput.LoadPdf("document.pdf")
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_page_", ResultHighlightType.Paragraph)
$vbLabelText   $csharpLabel

Was zeigen die Ausgabebilder?

Webseite mit drei Absätzen, der mittlere Absatz ist mit einem roten Rahmen hervorgehoben, der die Textauswahlmöglichkeit zeigt

Wie im obigen Ausgabebild zu sehen ist, wurden alle drei Absätze mit einem hellroten Kasten hervorgehoben. Diese visuelle Darstellung hilft Entwicklern, schnell zu erkennen, wie die OCR-Engine das Dokument in lesbare Blöcke unterteilt.

Was sind die verschiedenen Optionen von ResultHighlightType?

Im obigen Beispiel wurde ResultHighlightType.Paragraph verwendet, um Textblöcke hervorzuheben. IronOCR bietet zusätzliche Hervorhebungsoptionen durch dieses Enum. Im Folgenden finden Sie eine vollständige Liste der verfügbaren Typen, die jeweils unterschiedlichen Diagnosezwecken dienen.

Zeichen: Zeichnet einen Begrenzungsrahmen um jedes einzelne von der OCR-Engine erkannte Zeichen. Nützlich für die Fehlersuche bei der Zeichenerkennung oder bei speziellen Schriftarten, insbesondere bei der Arbeit mit angepassten Sprachdateien.

Wort: Hebt jedes vollständige Wort hervor, das von der Engine erkannt wird. Ideal für die Validierung von Wortgrenzen und die korrekte Worterkennung, insbesondere bei der Implementierung von Barcode- und QR-Lesen neben der Texterkennung.

Line: Hebt jede erkannte Textzeile hervor. Nützlich für Dokumente mit komplexem Layout, die eine Überprüfung der Zeilenerkennung erfordern, z. B. bei der Verarbeitung gescannter Dokumente.

Paragraph: Hebt ganze Textblöcke hervor, die als Absätze gruppiert sind. Perfekt für das Verständnis des Dokumentenlayouts und die Überprüfung der Segmentierung von Textblöcken, besonders nützlich bei der Arbeit mit Tabellenextraktion.

Wie vergleiche ich verschiedene Highlight-Typen?

Dieses umfassende Beispiel demonstriert die Erstellung von Hervorhebungen für alle verschiedenen Typen desselben Dokuments, so dass Sie die Ergebnisse vergleichen können:

using IronOcr;
using System;

// Initialize the OCR engine with custom configuration
IronTesseract ocrTesseract = new IronTesseract();

// Configure for better accuracy if needed
ocrTesseract.Configuration.ReadBarCodes = false; // Disable if not needed for performance
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Load the PDF document
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("document.pdf");

// Generate highlights for each type
Console.WriteLine("Generating character-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_character_", ResultHighlightType.Character);

Console.WriteLine("Generating word-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_word_", ResultHighlightType.Word);

Console.WriteLine("Generating line-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_line_", ResultHighlightType.Line);

Console.WriteLine("Generating paragraph-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_paragraph_", ResultHighlightType.Paragraph);

Console.WriteLine("All highlight images have been generated successfully!");
using IronOcr;
using System;

// Initialize the OCR engine with custom configuration
IronTesseract ocrTesseract = new IronTesseract();

// Configure for better accuracy if needed
ocrTesseract.Configuration.ReadBarCodes = false; // Disable if not needed for performance
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Load the PDF document
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("document.pdf");

// Generate highlights for each type
Console.WriteLine("Generating character-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_character_", ResultHighlightType.Character);

Console.WriteLine("Generating word-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_word_", ResultHighlightType.Word);

Console.WriteLine("Generating line-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_line_", ResultHighlightType.Line);

Console.WriteLine("Generating paragraph-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_paragraph_", ResultHighlightType.Paragraph);

Console.WriteLine("All highlight images have been generated successfully!");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wie gehe ich mit mehrseitigen Dokumenten um?

Bei der Verarbeitung mehrseitiger PDFs oder Multi-Frame-TIFF-Dateien behandelt die Hervorhebungsfunktion automatisch jede Seite einzeln. Dies ist besonders nützlich bei der Implementierung von PDF OCR Textextraktion Workflows:

using IronOcr;
using System.IO;

IronTesseract ocrTesseract = new IronTesseract();

// Load a multi-page document
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("multi-page-document.pdf");

// Create output directory if it doesn't exist
string outputDir = "highlighted_pages";
Directory.CreateDirectory(outputDir);

// Generate highlights for each page
// Files will be named: highlighted_pages/page_0.png, page_1.png, etc.
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, 
    Path.Combine(outputDir, "page_"), 
    ResultHighlightType.Word);

// Count generated files for verification
int pageCount = Directory.GetFiles(outputDir, "page_*.png").Length;
Console.WriteLine($"Generated {pageCount} highlighted page images");
using IronOcr;
using System.IO;

IronTesseract ocrTesseract = new IronTesseract();

// Load a multi-page document
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("multi-page-document.pdf");

// Create output directory if it doesn't exist
string outputDir = "highlighted_pages";
Directory.CreateDirectory(outputDir);

// Generate highlights for each page
// Files will be named: highlighted_pages/page_0.png, page_1.png, etc.
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, 
    Path.Combine(outputDir, "page_"), 
    ResultHighlightType.Word);

// Count generated files for verification
int pageCount = Directory.GetFiles(outputDir, "page_*.png").Length;
Console.WriteLine($"Generated {pageCount} highlighted page images");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Was sind die besten Praktiken für die Leistung?

Beachten Sie bei der Verwendung der Hervorhebungsfunktion die folgenden Best Practices:

  1. Dateigröße: Hervorgehobene Bilder können groß sein, insbesondere bei hochauflösenden Dokumenten. Berücksichtigen Sie bei der Verarbeitung großer Stapel den verfügbaren Speicherplatz im Ausgabeverzeichnis. Tipps zur Optimierung finden Sie in unserem fast OCR configuration guide.

  2. Leistungsfähigkeit: Das Erzeugen von Hervorhebungen ist mit einem zusätzlichen Verarbeitungsaufwand verbunden. Für Produktionssysteme, in denen Highlights nur gelegentlich benötigt werden, sollten sie als separater Diagnoseprozess und nicht als Teil des Hauptarbeitsablaufs implementiert werden. Erwägen Sie die Verwendung von Multithreaded OCR für die Stapelverarbeitung.

  3. Fehlerbehandlung: Implementieren Sie immer eine angemessene Fehlerbehandlung, wenn Sie mit Dateioperationen arbeiten:
try
{
    using var ocrInput = new OcrInput();
    ocrInput.LoadPdf("document.pdf");

    // Apply image filters if needed for better recognition
    ocrInput.Deskew(); // Correct slight rotations
    ocrInput.DeNoise(); // Remove background noise

    ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_", ResultHighlightType.Word);
}
catch (Exception ex)
{
    Console.WriteLine($"Error during highlighting: {ex.Message}");
    // Log error details for debugging
}
try
{
    using var ocrInput = new OcrInput();
    ocrInput.LoadPdf("document.pdf");

    // Apply image filters if needed for better recognition
    ocrInput.Deskew(); // Correct slight rotations
    ocrInput.DeNoise(); // Remove background noise

    ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_", ResultHighlightType.Word);
}
catch (Exception ex)
{
    Console.WriteLine($"Error during highlighting: {ex.Message}");
    // Log error details for debugging
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wie lässt sich die Hervorhebung in die OCR-Ergebnisse integrieren?

Die Hervorhebungsfunktion arbeitet nahtlos mit den Ergebnisobjekten von IronOCR zusammen und ermöglicht es Ihnen, visuelle Hervorhebungen mit extrahierten Textdaten zu korrelieren. Dies ist besonders nützlich, wenn Sie den OCR-Fortschritt verfolgen oder bestimmte Abschnitte des erkannten Textes validieren müssen. Die Klasse OcrResult liefert detaillierte Informationen über jedes erkannte Element, die direkt mit den von dieser Methode erzeugten visuellen Hervorhebungen übereinstimmen.

Was ist, wenn ich auf Probleme stoße?

Bei Problemen mit der Hervorhebungsfunktion finden Sie in der Allgemeinen Anleitung zur Fehlerbehebung allgemeine Lösungen. Für spezifische Probleme im Zusammenhang mit Hervorhebungen:

  • Leere Ausgabebilder: Stellen Sie sicher, dass das Eingabedokument lesbaren Text enthält und dass die OCR-Engine ordnungsgemäß für Ihren Dokumententyp konfiguriert ist. Möglicherweise müssen Sie Bildoptimierungsfilter oder Bildausrichtung korrigieren anwenden, um die Erkennung zu verbessern.
  • Fehlende Highlights: Einige Dokumenttypen erfordern möglicherweise eine spezielle Vorverarbeitung. Versuchen Sie, Bildfilter anzuwenden oder die Bildausrichtung zu korrigieren, um die Erkennung zu verbessern.
  • Leistungsprobleme: Bei großen Dokumenten sollte die Implementierung von Multithreading in Betracht gezogen werden, um die Verarbeitungsgeschwindigkeit zu erhöhen. Lesen Sie außerdem unseren Leitfaden zur Beseitigung von Scans geringer Qualität, wenn Sie mit minderwertigen Eingaben arbeiten.

Wie kann ich dies für das Debugging in der Produktion verwenden?

Die Hervorhebungsfunktion dient als hervorragendes Debugging-Tool für die Produktion. In Verbindung mit Abbruch-Tokens für lang laufende Operationen und Timeouts können Sie ein robustes Diagnosesystem erstellen. Erwägen Sie die Implementierung eines Debug-Modus in Ihrer Anwendung:

public class OcrDebugger
{
    private readonly IronTesseract _tesseract;
    private readonly bool _debugMode;

    public OcrDebugger(bool enableDebugMode = false)
    {
        _tesseract = new IronTesseract();
        _debugMode = enableDebugMode;
    }

    public OcrResult ProcessDocument(string filePath)
    {
        using var input = new OcrInput();
        input.LoadPdf(filePath);

        // Apply preprocessing
        input.Deskew();
        input.DeNoise();

        // Generate debug highlights if in debug mode
        if (_debugMode)
        {
            string debugPath = $"debug_{Path.GetFileNameWithoutExtension(filePath)}_";
            input.HighlightTextAndSaveAsImages(_tesseract, debugPath, ResultHighlightType.Word);
        }

        // Perform actual OCR
        return _tesseract.Read(input);
    }
}
public class OcrDebugger
{
    private readonly IronTesseract _tesseract;
    private readonly bool _debugMode;

    public OcrDebugger(bool enableDebugMode = false)
    {
        _tesseract = new IronTesseract();
        _debugMode = enableDebugMode;
    }

    public OcrResult ProcessDocument(string filePath)
    {
        using var input = new OcrInput();
        input.LoadPdf(filePath);

        // Apply preprocessing
        input.Deskew();
        input.DeNoise();

        // Generate debug highlights if in debug mode
        if (_debugMode)
        {
            string debugPath = $"debug_{Path.GetFileNameWithoutExtension(filePath)}_";
            input.HighlightTextAndSaveAsImages(_tesseract, debugPath, ResultHighlightType.Word);
        }

        // Perform actual OCR
        return _tesseract.Read(input);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wo soll ich als nächstes hin?

Jetzt, wo Sie wissen, wie Sie die Hervorhebungsfunktion verwenden können, können Sie sie erkunden:

Für den produktiven Einsatz müssen Sie eine Lizenz erwerben, um Wasserzeichen zu entfernen und die volle Funktionalität zu nutzen.

Häufig gestellte Fragen

Wie kann ich OCR-Ergebnisse in meiner C#-Anwendung visualisieren?

IronOCR bietet die HighlightTextAndSaveAsImages-Methode, die OCR-Ergebnisse durch das Zeichnen von Begrenzungsrahmen um erkannte Textelemente (Zeichen, Wörter, Zeilen oder Absätze) visualisiert und sie als Diagnosebilder speichert. Diese Funktion hilft Entwicklern, die OCR-Genauigkeit zu überprüfen und Erkennungsprobleme zu beheben.

Wie lassen sich Wörter in einem PDF-Dokument am einfachsten hervorheben?

Mit IronOCR können Sie Wörter in einem PDF mit nur einer Zeile Code hervorheben: new IronOcr.OcrInput().LoadPdf("document.pdf").HighlightTextAndSaveAsImages(new IronOcr.IronTesseract(), "highlight_page_", IronOcr.ResultHighlightType.Word). Dies lädt die PDF-Datei und erzeugt Bilder mit hervorgehobenen Wörtern.

Welche Parameter benötigt die Methode HighlightTextAndSaveAsImages?

Die Methode HighlightTextAndSaveAsImages in IronOCR erfordert drei Parameter: die Instanz der IronTesseract OCR-Engine, einen Präfix-String für den Ausgabedateinamen und einen Enum-Wert ResultHighlightType, der angibt, welche Textelemente hervorgehoben werden sollen (Zeichen, Wort, Zeile oder Absatz).

Wie werden die Ausgabebilder bei der Verwendung von Texthervorhebungen benannt?

IronOCR benennt die Ausgabebilder automatisch, indem es das von Ihnen angegebene Präfix mit einer Seitenkennung kombiniert. Wenn Sie z. B. "highlight_page_" als Präfix verwenden, erzeugt die Methode Dateien mit den Namen "highlight_page_0", "highlight_page_1" usw. für jede Seite in Ihrem Dokument.

Warum ist die visuelle Hervorhebung für die OCR-Entwicklung wichtig?

Die visuelle Hervorhebung in IronOCR liefert wichtiges diagnostisches Feedback, indem sie genau anzeigt, welchen Text die OCR-Engine erkannt hat und wo mögliche Fehler auftreten. Diese visuelle Darstellung hilft Entwicklern, Erkennungsprobleme zu beheben, die OCR-Genauigkeit zu überprüfen und Probleme in komplexen Dokumenten zu beheben.

Kann ich neben Wörtern auch andere Arten von Textelementen hervorheben?

Ja, IronOCR's ResultHighlightType enum ermöglicht es Ihnen, verschiedene Textelemente hervorzuheben, einschließlich einzelner Zeichen, Wörter, Zeilen oder ganzer Absätze. Geben Sie einfach den gewünschten Typ an, wenn Sie die Methode HighlightTextAndSaveAsImages aufrufen, um verschiedene Ebenen der Texterkennung zu visualisieren.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 5,246,844 | Version: 2025.12 gerade veröffentlicht