Wie man die Bildfarben für das Lesen in C# korrigiert | IronOCR

Wie man Bildfarben zum Lesen in C#35 fixiert

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

Korrigieren Sie Bildfarben in C# mit IronOCRs Binarisierungs-, Graustufen-, Invertierungs- und Farbersetzungsmethoden, um die Textlesbarkeit und OCR-Genauigkeit zu verbessern. Lesen Sie spezifische Textfarben für die gezielte Extraktion.

Schnellstart: Bestimmte Textfarben isolieren

Verwenden Sie die SelectTextColor-Methode von IronOCR, um die OCR auf bestimmte Textfarben zu fokussieren - ohne komplexe Bildmanipulation. Laden Sie ein Bild, wählen Sie die Textfarbe und -toleranz, und extrahieren Sie nur den Text, um genaue OCR-Ergebnisse zu erzielen.

```cs:title=Textfarbe schnell mit IronOCR korrigieren new IronTesseract().Read(new IronOcr.OcrImageInput("sample.jpg").SelectTextColor(new IronSoftware.Drawing.Color("#DB645C"), 60));


<div class="hsg-featured-snippet">
    <h3>Minimaler Arbeitsablauf (5 Schritte)</h3>
    <ol>
        <li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronOcr/">Herunterladen einer C#-Bibliothek zur Korrektur von Bildfarben</a></li>
        <li>Importieren Sie das PDF-Dokument und die Bilder zum Lesen</li>
        <li>Farbeffekte anwenden: Binarisierung, Graustufen, Invertierung und Farbersetzung</li>
        <li>Exportieren Sie das korrigierte Bild zur Ansicht</li>
        <li>Lesen Sie bestimmte Textfarben mit <code>SelectTextColor</code></li>
    </ol>
</div>

<br class="clear">

## Wie kann ich ein Bild binarisieren, um die OCR zu verbessern?

Bei der Binarisierung werden Bilder in ein zweifarbiges Format umgewandelt, in der Regel in Schwarz und Weiß. Dadurch wird der Text vom Hintergrund getrennt und das Rauschen reduziert, wodurch der Text deutlicher und leichter zu lesen ist.

### Warum verbessert die Binarisierung die OCR-Genauigkeit?

Wenden Sie die Binarisierung mit der Methode `Binarize` an. OCR funktioniert am besten mit kontrastreichen Bildern, die schwarzen Text auf weißem Hintergrund enthalten. Diese Methode schafft eine klare Unterscheidung zwischen Hintergrund und Zeichen.

Die Binarisierung eignet sich besonders für gescannte Dokumente mit ungleichmäßiger Beleuchtung oder Hintergrundrauschen. Der Algorithmus analysiert die Bilder und bestimmt optimale Schwellenwerte, um den Vordergrundtext vom Hintergrund zu trennen. Für fortgeschrittene Vorverarbeitungstechniken siehe den [OCR Image Optimization Filters guide](https://ironsoftware.com/csharp/ocr/examples/ocr-image-filters-for-net-tesseract/).

### Was ist die Code-Implementierung für die Binarisierung?

```csharp
:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-binarize-image.cs

Kombinieren Sie bei der Stapelverarbeitung die Binarisierung mit anderen Filtern. Verwenden Sie den Filter-Assistenten, um die beste Filterkombination für Ihre Bilder zu bestimmen.

Wie kann ich Ergebnisse exportieren und vergleichen?

Exportieren Sie geänderte Bilder mit der Methode SaveAsImages. Vergleichen Sie unten die Bilder vor und nach der Binarisierung.

Sample image with red and black text on blue-gray background showing OCR challenges before binarization
Binarized version showing clear black text on pure white background for optimal OCR processing

Wie konvertiere ich Bilder in Graustufen, um sie besser lesen zu können?

Die Konvertierung von Bildern in Graustufen reduziert die visuelle Unübersichtlichkeit und verbessert die Lesbarkeit. Dies ist hilfreich, wenn die Originalfarben vom Inhalt ablenken.

Wann sollte ich Graustufen gegenüber anderen Methoden bevorzugen?

Wenden Sie Graustufen mit der Methode ToGrayScale an. Der Prozess ermittelt den Durchschnitt der R-, G- und B-Werte.

Graustufen eignen sich gut bei farbigen Hintergründen oder Wasserzeichen, die die Texterkennung stören. Im Gegensatz zur Binarisierung bleiben bei der Graustufenübersetzung Details in Bildern mit feinen Abweichungen erhalten. Verwenden Sie es für Fotos mit eingebettetem Text oder komplexen Layouts. Für Scans von schlechter Qualität siehe Fixing Low Quality Scans & Images.

Was ist der einfache Code für die Graustufen-Konvertierung?

:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-grayscale-image.cs
// Apply grayscale affect
imageInput.ToGrayScale();
' Apply grayscale affect
imageInput.ToGrayScale()
$vbLabelText   $csharpLabel

Für unterschiedliche Bildqualitäten kombinieren Sie Graustufen mit anderen Vorverarbeitungsschritten. Die OcrInput Klasse Dokumentation erklärt die Verkettung mehrerer Filter.

Wie ist die Graustufe im Vergleich zum Original?

Sample text with red headers and black body text showing multiple colors before grayscale conversion
Grayscale document with clear text about tech executives, demonstrating improved readability after conversion

Wann sollte ich Bildfarben invertieren?

Das Invertieren von Farben erhöht den Kontrast. Die Umwandlung von weißem Text auf schwarzem Hintergrund in schwarzen Text auf weißem Hintergrund verbessert die Lesbarkeit.

Wie implementiere ich Farbumkehr?

Verwenden Sie die Methode Invert, um Farben zu invertieren. Übergeben Sie einen booleschen Wert, um Farbkanäle zu entfernen und Graustufen zurückzugeben.

Die Farbinversion behandelt negative Bilder oder Screenshots mit dunklem Thema. Moderne Anwendungen verwenden Dark-Mode-Schnittstellen, die eine Herausforderung für die herkömmliche OCR darstellen. Die Invertierung dieser Bilder gewährleistet eine optimale Erkennung. Für verschiedene Bildtypen siehe die Fast OCR Configuration guide.

:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-invert-image.cs
// Apply invert affect
imageInput.Invert();
' Apply invert affect
imageInput.Invert()
$vbLabelText   $csharpLabel

Für die Stapelverarbeitung mit gemischten Dokumenttypen sollte eine automatische Erkennung von dunklem Hintergrund implementiert werden. Computer Vision-Funktionen in IronOCR erkennen, wann eine Inversion erforderlich ist.

Was ist der Unterschied zwischen Invertierungsoptionen?

Vergleichen Sie die Invert-Methode mit und ohne Graustufen:

Color-inverted document maintaining original color channels with reversed values
Business text with inverted colors showing white text on dark background demonstrating color inversion effect

Wie kann ich bestimmte Farben in einem Bild ersetzen?

Ersetzen Sie bestimmte Farben, um Elemente hervorzuheben oder zu verbergen. Verwenden Sie diese Funktion, um die Hervorhebung des Textes zu verbessern oder problematische Kontraste zu korrigieren.

Warum ist Toleranz bei der Farbersetzung wichtig?

Die Methode ReplaceColor benötigt die aktuelle Farbe, die neue Farbe und den Toleranzwert. Bei höherer Toleranz werden unscharfe Bilder besser verarbeitet.

Die Toleranz bestimmt, wie genau die Pixel mit der Zielfarbe übereinstimmen müssen. Niedrige Werte (0-50) eignen sich für einheitliche Farben. Höhere Werte (100-200) behandeln Text mit Anti-Aliasing oder Kompressionsartefakte. Dies hilft bei gescannten Dokumenten, bei denen die Tinte ausläuft oder die Papierstruktur zu Abweichungen führt.

Wie implementiere ich die Farbersetzung?

:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-replace-color.cs
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sample.jpg");
IronSoftware.Drawing.Color currentColor = new IronSoftware.Drawing.Color("#DB645C");
IronSoftware.Drawing.Color newColor = IronSoftware.Drawing.Color.DarkCyan;

// Replace color
imageInput.ReplaceColor(currentColor, newColor, 80);

// Export the modified image
imageInput.SaveAsImages("replaceColor");
Imports IronOcr

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("sample.jpg")
Private currentColor As New IronSoftware.Drawing.Color("#DB645C")
Private newColor As IronSoftware.Drawing.Color = IronSoftware.Drawing.Color.DarkCyan

' Replace color
imageInput.ReplaceColor(currentColor, newColor, 80)

' Export the modified image
imageInput.SaveAsImages("replaceColor")
$vbLabelText   $csharpLabel

Wie gehe ich mit erweiterten Farbersetzungsszenarien um?

Verketten Sie mehrere Ersetzungen für komplexe Szenarien:

/* :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-multiple-replacements.cs */
// Replace multiple colors in sequence
using var imageInput = new OcrImageInput("multi-color-document.jpg");

// Replace red text with black
imageInput.ReplaceColor(IronSoftware.Drawing.Color.Red, IronSoftware.Drawing.Color.Black, 70);

// Replace blue headers with dark gray
imageInput.ReplaceColor(IronSoftware.Drawing.Color.Blue, IronSoftware.Drawing.Color.DarkGray, 60);

// Replace light yellow background with white
imageInput.ReplaceColor(new IronSoftware.Drawing.Color("#FFFACD"), IronSoftware.Drawing.Color.White, 40);

// Perform OCR on the cleaned image
var result = ocrTesseract.Read(imageInput);
/* :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-multiple-replacements.cs */
// Replace multiple colors in sequence
using var imageInput = new OcrImageInput("multi-color-document.jpg");

// Replace red text with black
imageInput.ReplaceColor(IronSoftware.Drawing.Color.Red, IronSoftware.Drawing.Color.Black, 70);

// Replace blue headers with dark gray
imageInput.ReplaceColor(IronSoftware.Drawing.Color.Blue, IronSoftware.Drawing.Color.DarkGray, 60);

// Replace light yellow background with white
imageInput.ReplaceColor(new IronSoftware.Drawing.Color("#FFFACD"), IronSoftware.Drawing.Color.White, 40);

// Perform OCR on the cleaned image
var result = ocrTesseract.Read(imageInput);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Für komplexe Farbersetzungen siehe Bildkorrekturfilter für zusätzliche Vorverarbeitungstechniken.

Was sind die visuellen Ergebnisse der Farbersetzung?

Text sample with orange-red colored names and content on blue background showing original colors before replacement
Document after color replacement showing dark cyan headers replacing original orange-red text

Wie kann ich nur bestimmte Textfarben lesen?

Lesen Sie bestimmte Textfarben mit der Methode SelectTextColor. Geben Sie die Zielfarbe und die Toleranz (0-255) an. Die Toleranz stellt die zulässigen Unterschiede zwischen Pixel und ausgewählter Farbe für R-, G- und B-Werte dar.

Wie wirkt sich die Farbtoleranz auf die Ergebnisse aus?

:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-select-text-color.cs
using IronOcr;
using System;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Text color to focus on
IronSoftware.Drawing.Color focusColor = new IronSoftware.Drawing.Color("#DB645C");

// Specify which text color to read
imageInput.SelectTextColor(focusColor, 60);

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Output result to console
Console.WriteLine(ocrResult.Text);
Imports IronOcr
Imports System

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("sample.jpg")
' Text color to focus on
Private focusColor As New IronSoftware.Drawing.Color("#DB645C")

' Specify which text color to read
imageInput.SelectTextColor(focusColor, 60)

' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Output result to console
Console.WriteLine(ocrResult.Text)
$vbLabelText   $csharpLabel

Verwenden Sie selektives Farblesen für Formulare mit farblich gekennzeichneten Abschnitten, Extrahieren von hervorgehobenem Text oder Lesen bestimmter Warnmeldungen. Für die Extraktion strukturierter Daten siehe OcrResult Klasse für die erweiterte Verarbeitung.

Welche Ausgabe kann ich von der Farbauswahl erwarten?

Das OCR-Ergebnis liest nur orangefarbenen Text:

Debug-Konsole zeigt OCR extrahierten orangefarbenen Text: MASAYOSHI SON und YASUMITSU SHIGETA aus Geschäftsdokument

Wie speichere ich geänderte PDF-Dateien mit angewandten Filtern?

IronOCR speichert modifizierte PDFs mit oder ohne Filter. Der zweite Parameter der Methode SaveAsSearchablePdf gibt an, ob die Datei mit Filtern gespeichert werden soll.

Was ist die Implementierung für durchsuchbare PDFs?

:path=/static-assets/ocr/content-code-examples/how-to/image-quality-correction-searchable-pdf.cs
using IronOcr;

var ocr = new IronTesseract();
var ocrInput = new OcrInput();

// Load a PDF file
ocrInput.LoadPdf("invoice.pdf");

// Apply gray scale filter
ocrInput.ToGrayScale();
OcrResult result = ocr.Read(ocrInput);

// Save the result as a searchable PDF with filters applied
result.SaveAsSearchablePdf("outputGrayscale.pdf", true);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wann sollte ich Filter auf die gespeicherte PDF-Datei anwenden?

Wenden Sie Filter an, um sauberere, besser lesbare Dokumente zu erstellen. Dies hilft bei der Archivierung oder der gemeinsamen Nutzung von Dokumenten auf verschiedenen Geräten. Weitere Informationen finden Sie unter Erstellen durchsuchbarer PDFs mit OCR.

Für komplexe Dokumente mit Tabellen können Sie Tabelle im Dokument lesen für eine spezielle Extraktion nutzen. Für die Verarbeitung großer Datenmengen siehe Multithreaded Tesseract OCR zur Optimierung der Filteranwendung für mehrere Dokumente.

Häufig gestellte Fragen

Wie kann ich schlechte Bildfarben korrigieren, die die OCR-Genauigkeit beeinträchtigen?

IronOCR bietet mehrere Farbkorrekturmethoden, darunter Binarisierung, Graustufenumwandlung, Invertierung und Farbersetzung. Diese Filter tragen dazu bei, die Lesbarkeit von Text zu verbessern, indem sie den Kontrast zwischen Text und Hintergrund verstärken, wodurch es für die OCR-Engine einfacher wird, Text aus Bildern mit schlechter Farbqualität genau zu extrahieren.

Was ist Binarisierung und wann sollte ich sie für OCR verwenden?

Die Binarisierung konvertiert Bilder mit der IronOCR-Methode Binarize in ein zweifarbiges Format (in der Regel schwarz-weiß). Es ist besonders effektiv für gescannte Dokumente mit ungleichmäßiger Beleuchtung oder Hintergrundrauschen, da es eine klare Unterscheidung zwischen Text und Hintergrund schafft, indem es das Bild analysiert und optimale Schwellenwerte für die Trennung bestimmt.

Wie extrahiere ich nur bestimmten farbigen Text aus einem Bild?

Die SelectTextColor-Methode von IronOCR ermöglicht die Fokussierung der OCR auf bestimmte Textfarben ohne komplexe Bildmanipulation. Geben Sie einfach die Zielfarbe und die Toleranzstufe an - zum Beispiel SelectTextColor(new IronSoftware.Drawing.Color("#DB645C")), 60) - um nur Text in diesem Farbbereich zu extrahieren.

Wann sollte ich Bilder in Graustufen umwandeln, anstatt sie zu binarisieren?

Verwenden Sie die ToGrayScale-Methode von IronOCR, wenn Sie es mit farbigen Hintergründen oder Wasserzeichen zu tun haben, die bei der Texterkennung stören. Im Gegensatz zur Binarisierung bleiben bei der Graustufenmethode die Details in Bildern mit feinen Abweichungen erhalten, so dass sie ideal ist, wenn Sie die Bildqualität beibehalten und gleichzeitig die visuelle Unübersichtlichkeit reduzieren möchten.

Kann ich korrigierte Bilder exportieren, um die Ergebnisse von Farbfiltern zu sehen?

Ja, IronOCR bietet die SaveAsImages-Methode, um geänderte Bilder nach der Anwendung von Farbkorrekturen zu exportieren. So können Sie die Ergebnisse vorher und nachher vergleichen und feststellen, welche Farbkorrekturmethoden für Ihre spezifischen Bilder am besten geeignet sind.

Wie kann ich den besten Farbkorrekturfilter für meine Bilder bestimmen?

IronOCR enthält einen Filter-Assistenten, der Ihnen hilft, die optimale Filterkombination für Ihre Bilder zu bestimmen. Bei der Stapelverarbeitung können Sie mehrere Filter wie die Binarisierung mit anderen Vorverarbeitungstechniken kombinieren, um die besten OCR-Ergebnisse für Ihren Dokumententyp zu erzielen.

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
Rezensiert von
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff ist außerdem Principal Program Manager für das .NET- und Visual Studio-Team. Er ist der ausführende Produzent der .NET Conf Virtual Conference Series und moderiert ‚Fritz and Friends‘, einen Livestream für Entwickler, der zweimal wöchentlich ausgestrahlt wird. Dort spricht er über Technik und schreibt gemeinsam mit den Zuschauern Code. Jeff schreibt Workshops, Präsentationen und plant Inhalte für die größten Microsoft-Entwicklerveranstaltungen, einschließlich Microsoft Build, Microsoft Ignite, .NET Conf und dem Microsoft MVP Summit.
Bereit anzufangen?
Nuget Downloads 5,246,844 | Version: 2025.12 gerade veröffentlicht