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 Binarisierungs-, Graustufen-, Invertierungs- und Farbersetzungsmethoden, um Text und Inhalt eines Bildes besser lesbar und ästhetisch ansprechend zu machen, was besonders bei der Arbeit mit OCR wichtig ist(Optische Zeichenerkennung) 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");
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")
VB   C#

Der Einfachheit halber können Sie das geänderte Bild mit der Methode SaveAsImages exportieren. Nachfolgend sehen Sie einen Vergleich des Bildes vor und nach der Binarisierung.

Beispielbild
Binarisiertes 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()
VB   C#
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 Methode Invert, um die Bildfarbe zu invertieren. 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()
VB   C#

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

Invertiertes Bild
Invertiertes und grauskaliertes 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 Methode ReplaceColor zu verwenden, geben Sie die aktuelle Farbe, die ersetzt werden soll, sowie die neue Farbe an. 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")
VB   C#
Beispielbild
Ersetztes Farbbild

Spezifische Textfarbe lesen Beispiel

Diese Funktion zielt darauf ab, nur die angegebene Textfarbe zu lesen. Verwenden Sie die Methode SelectTextColor, um die Farbe, auf die IronOCR fokussieren soll, zusammen mit dem Toleranzwert anzugeben. 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)
VB   C#

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.