Aktualisiert 10. Dezember 2024
Teilen Sie:

Bildfarben zum Lesen korrigieren

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

von Chaknith Bin

Die Korrektur von Bildfarben umfasst mehrere Techniken zur Verbesserung der Lesbarkeit und Qualität eines Bildes. IronOCR bietet Binarisierung, Graustufen, Inversion und Farbersetzungsmethoden, um Text und Inhalt innerhalb eines Bildes besser lesbar und ästhetisch ansprechender zu machen, was besonders wichtig ist, wenn man mit OCR (Optical Character Recognition) arbeitet, um Text aus Bildern zu extrahieren. Es ist auch möglich, nur die ausgewählte Textfarbe zu lesen.

Legen Sie los mit IronOCR

Beginnen Sie noch heute mit der Verwendung von IronOCR in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer



Bild binarisieren Beispiel

Bei diesem Verfahren wird das Bild in ein zweifarbiges Format umgewandelt, in der Regel Schwarz und Weiß. Es ist nützlich, um den Text vom Hintergrund zu trennen und das Rauschen zu reduzieren, wodurch der Text deutlicher und leichter lesbar wird.

Um den Binarisierungseffekt auf das Bild anzuwenden, verwenden Sie die Methode Binarize. Da OCR-Prozesse am besten mit dem kontrastreichsten Bild funktionieren, das schwarzen Text auf weißem Hintergrund zeigt, erweist sich diese Methode als wichtig, um den Hintergrund deutlich von den Buchstaben zu unterscheiden.

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

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

// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Apply binarize affect
imageInput.Binarize();

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

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("sample.jpg")
' Apply binarize affect
imageInput.Binarize()

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

Zur Bequemlichkeit können Sie das bearbeitete Bild mit der Methode SaveAsImages exportieren. Nachfolgend sehen Sie einen Vergleich des Bildes vor und nach der Binarisierung.

Beispielbild
Binärisiertes Bild

Beispiel für ein Graustufenbild

Durch die Umwandlung des Bildes in verschiedene Grautöne kann es weniger ablenkend und leserfreundlicher gestaltet werden. Dies ist vor allem dann hilfreich, wenn die Originalfarben des Bildes eine visuelle Unordnung verursachen.

Um den Graustufeneffekt auf das Bild anzuwenden, verwenden Sie die Methode ToGrayScale. Beim Graustufenverfahren wird der Durchschnitt der R-, G- und B-Werte gebildet.

: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
Beispielbild
Grauskaliertes Bild

Beispiel für ein invertiertes Bild

Die Umkehrung der Farben kann den Kontrast erhöhen. Wenn beispielsweise weißer Text auf schwarzem Hintergrund in schwarzen Text auf weißem Hintergrund umgewandelt wird, kann die Lesbarkeit verbessert werden.

Verwenden Sie die Invert-Methode, um die Bildfarbe umzukehren. Die Methode akzeptiert optional einen booleschen Wert, der verwendet wird, um alle Farbkanäle zu entfernen und ein Graustufenbild zurückzugeben.

: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

Die folgenden Bilder zeigen die Methode Invertieren mit und ohne die Option Graustufen.

Umgekehrtes Bild
Umgekehrtes und in Graustufen umgewandeltes Bild

Beispiel für eine Ersetzung der Farbe

Mit dieser Technik können Sie bestimmte Farben im Bild durch andere Farben ersetzen, um bestimmte Elemente hervorzuheben oder zu betonen. Er wird häufig verwendet, um Text hervorzuheben oder problematische Farbkontraste zu korrigieren.

Um die ReplaceColor-Methode zu verwenden, geben Sie die aktuelle Farbe an, die ersetzt werden soll, sowie die neue Farbe. Der dritte Parameter der Methode, der dem Toleranzwert entspricht, ist ebenfalls wichtig. Bei unscharfen Bildern ist eine höhere Toleranz erforderlich, um das gewünschte Ergebnis zu erzielen.

: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
Beispielbild
Ersetztes Farbbild

Spezifische Textfarbe lesen Beispiel

Diese Funktion zielt darauf ab, nur die angegebene Textfarbe zu lesen. Verwenden Sie die SelectTextColor-Methode, um die Farbe festzulegen, auf die IronOCR sich konzentrieren soll, zusammen mit dem Toleranzwert. Der Toleranzwert akzeptiert einen Bereich von 0-255, der die zulässige Differenz zwischen der Pixelfarbe und der ausgewählten Farbe für jeden R-, G- und B-Wert im Farbraum darstellt.

: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

Unten finden Sie das OCR-Ergebnis, das nur den Text in orangefarbener Farbe lesen soll.

OCR-Ergebnis
Chaknith related to Spezifische Textfarbe lesen Beispiel

Chaknith Bin

Software-Ingenieur

Chaknith ist der Sherlock Holmes der Entwickler. Zum ersten Mal kam ihm der Gedanke, dass er eine Zukunft in der Softwareentwicklung haben könnte, als er zum Spaß an Code Challenges teilnahm. Sein Schwerpunkt liegt auf IronXL und IronBarcode, aber er ist stolz darauf, Kunden mit jedem Produkt zu helfen. Chaknith nutzt sein Wissen aus direkten Gesprächen mit Kunden, um die Produkte selbst weiter zu verbessern. Sein anekdotisches Feedback geht über Jira-Tickets hinaus und unterstützt die Produktentwicklung, die Dokumentation und das Marketing, um das Gesamterlebnis der Kunden zu verbessern.Wenn er nicht im Büro ist, lernt er über maschinelles Lernen, programmiert und wandert.