Bildfilter für bessere OCR Software – Texterkennung und Bild zu Text Optimierung in C
IronOCR bietet die Werkzeuge für optimale Bild zu Text Konvertierung, auch wenn Bilder eine Vorverarbeitung durch Filter benötigen. Sie können aus einer großen Auswahl an Filtern wählen, die Ihre Bilder für eine präzise Texterkennung optimieren.
Schnellstart: Filter anwenden, um OCR-Bilder zu bereinigen
Mit nur einer einzigen einfachen Aufrufkette können Sie die Filter DeNoise, Binarize und Deskew anwenden, um die Scanklarheit vor der OCR zu verbessern. Dieses Beispiel zeigt, wie einfach es ist, Bilder mit den eingebauten Filtern von IronOCR zu verbessern und sofort loszulegen.
-
Installieren Sie IronOCR mit NuGet Package Manager
PM > Install-Package IronOcr -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
using var input = new IronOcr.OcrInput("scan.jpg"); input.DeNoise(true).Binarize().Deskew(45); var result = new IronOcr.IronTesseract().Read(input); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Liste der OCR-Bildfilter
Die folgenden Bildfilter können die Leistung wirklich verbessern:
Filters to change the Image OrientationRotate- Dreht Bilder um eine bestimmte Gradzahl im Uhrzeigersinn. Für eine Drehung gegen den Uhrzeigersinn verwenden Sie negative Zahlen.Deskew- Dreht ein Bild so, dass es richtig herum und orthogonal ist. Dies ist sehr nützlich für OCR, da Tesseracts Toleranz für schräggestellte Scans bis 5 Grad recht niedrig ist.Scale- Skaliert OCR-Eingabeseiten proportional.
Filters to manipulate Image ColorsBinarize- Dieser Bildfilter färbt jedes Pixel entweder schwarz oder weiß, ohne Zwischenstufen. Dies kann die OCR-Leistung bei sehr geringem Text-Hintergrund-Kontrast verbessern.ToGrayScale- Dieser Bildfilter wandelt jedes Pixel in Graustufen um. Wahrscheinlich keine Verbesserung der OCR-Genauigkeit, aber möglicherweise schnellere Geschwindigkeit.Invert- Kehrt alle Farben um. Z.B. Weiß wird schwarz und umgekehrt.ReplaceColor- Ersetzt eine Farbe in einem Bild durch eine andere Farbe, innerhalb eines bestimmten Schwellenwerts.
Filters to improve Contrast in an ImageContrast- Erhöht den Kontrast automatisch. Dieser Filter verbessert oft die OCR-Geschwindigkeit und -Genauigkeit bei niedrigen Kontrast-Scans.Dilate- Erweiterte Morphologie. Dilatation fügt Pixel zu den Rändern von Objekten in einem Bild hinzu. Gegenteil von Erosion.Erode- Erweiterte Morphologie. Erosion entfernt Pixel von Objektgrenzen. Gegenteil von Dilatation.
Filters to reduce Image NoiseSharpen- Schärft unscharfe OCR-Dokumente und reduziert die Alphakanäle auf Weiß.DeNoise- Entfernt digitales Rauschen. Dieser Filter sollte nur in Szenarien verwendet werden, in denen Rauschen zu erwarten ist.EnhanceResolution- Verbessert die Auflösung von Bildern mit niedriger Qualität. Dieser Filter ist nicht oft nötig, daOcrInput.MinimumDPIundOcrInput.TargetDPIEingaben mit niedriger Auflösung automatisch erkennen und verarbeiten.
Filter-Beispiel und -Anwendung
Im folgenden Beispiel zeigen wir, wie Sie Filter in Ihrem Code anwenden können.
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-1.cs
using IronOcr;
using System;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("my_image.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("my_image.png")
input.Deskew()
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
Debug-Filter / Was macht der Filter?
Wenn Sie Schwierigkeiten haben, Bilder oder Barcodes in Ihrem Programm zu lesen, gibt es eine Möglichkeit, ein Bild eines gefilterten Ergebnisses zu speichern. Auf diese Weise können Sie debuggen und genau sehen, was jeder Filter macht und wie er Ihr Bild manipuliert.
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-2.cs
using IronOcr;
using System;
var file = "skewed_image.tiff";
var ocr = new IronTesseract();
using var input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames(file, pageindices);
// Here we apply the filter: Deskew
input.Deskew();
// Save the input with filter(s) applied
input.SaveAsImages("my_deskewed");
// We read, then print the text to the console
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
Private file = "skewed_image.tiff"
Private ocr = New IronTesseract()
Private input = New OcrInput()
Private pageindices = New Integer() { 1, 2 }
input.LoadImageFrames(file, pageindices)
' Here we apply the filter: Deskew
input.Deskew()
' Save the input with filter(s) applied
input.SaveAsImages("my_deskewed")
' We read, then print the text to the console
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
Filter-Einsatzmöglichkeiten
Drehen
Filter-Erklärung
Drehen ist ein Filter, der verwendet wird, um eine bekannte Drehung manuell zu einem Bild hinzuzufügen, um es am besten gerade auszurichten. IronOCR verfügt über die Funktionalität, Deskew() auszuführen. Allerdings ist die Toleranz hierfür recht gering, und es eignet sich am besten für Bilder, die nahezu perfekt gerade sind (innerhalb von etwa 15 Grad). Für Eingabebilder, die um 90 Grad gedreht oder auf dem Kopf stehen, sollten wir Rotate() aufrufen.
Use-Case-Codebeispiel
Dies ist ein Beispiel für den Aufruf von Rotate(), um ein auf dem Kopf stehendes Bild zu korrigieren:
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-3.cs
using IronOcr;
using System;
var image = "screenshot.png";
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load at least one image
input.LoadImage(image);
// Rotate 180 degrees because image is upside-down
input.Rotate(180);
// Read image into variable: result
var result = ocr.Read(input);
// Example print to console
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
Private image = "screenshot.png"
Private ocr = New IronTesseract()
Private input = New OcrInput()
' Load at least one image
input.LoadImage(image)
' Rotate 180 degrees because image is upside-down
input.Rotate(180)
' Read image into variable: result
Dim result = ocr.Read(input)
' Example print to console
Console.WriteLine(result.Text)
| `` | `` |
|---|---|
![]() |
![]() |
Entzerren
Filter-Erklärung
Verwendet eine Hough-Transformation, um ein Bild innerhalb eines bestimmten Toleranzbereichs gerade zu richten. Dies ist wichtig für Bilder, die nicht vollständig gerade sind, da ein schiefes Dokument zu einem Fehllesung führen kann.
Use-Case-Codebeispiel
Dies ist ein Beispiel für den Aufruf von Deskew() zur Korrektur eines verzerrten Bildes:
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-4.cs
using IronOcr;
using System;
var image = @"paragraph_skewed.png";
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load at least one image
input.LoadImage(image);
// Apply deskew with 15 degree snap
bool didDeskew = input.Deskew(15);
if (didDeskew)
{
// Read image into variable: result
var result = ocr.Read(input);
Console.WriteLine(result.Text);
}
else
{
Console.WriteLine("Deskew not applied because Image Orientation could not be determined.");
}
Imports IronOcr
Imports System
Private image = "paragraph_skewed.png"
Private ocr = New IronTesseract()
Private input = New OcrInput()
' Load at least one image
input.LoadImage(image)
' Apply deskew with 15 degree snap
Dim didDeskew As Boolean = input.Deskew(15)
If didDeskew Then
' Read image into variable: result
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
Else
Console.WriteLine("Deskew not applied because Image Orientation could not be determined.")
End If
Skalieren
Filter-Erklärung
Skalieren ist ein nützlicher Bildmanipulationsfilter, der dabei hilft, ein Bild mit den bereits vorhandenen Pixeln zu skalieren. Dies kann verwendet werden, wenn ein Barcode nicht gescannt wird, weil das Bild nur wenige Pixel breit ist, wobei jeder Balken ein Pixel ist, oder wenn der Text zu klein ist, ohne Kantenglättung.
1000px x 1000px, in dem Barcodes gut gelesen werden können. Dies sollte berücksichtigt werden, wenn Ihr Barcode nicht gefunden wird.Use-Case-Codebeispiel
Dies ist ein Beispiel für den Aufruf von Scale(), um die Abstände zwischen den Balken in einem Barcode zum Scannen zu vergrößern:
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-5.cs
using IronOcr;
using System;
var image = @"small_barcode.png";
var ocr = new IronTesseract();
// Optional: This example uses a barcode
ocr.Configuration.ReadBarCodes = true;
using var input = new OcrInput();
// Load at least one image
input.LoadImage(image);
// Apply scale
input.Scale(400); // 400% is 4 times larger
// Read image into variable: result
var result = ocr.Read(input);
// Example print to console
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
Private image = "small_barcode.png"
Private ocr = New IronTesseract()
' Optional: This example uses a barcode
ocr.Configuration.ReadBarCodes = True
Dim input = New OcrInput()
' Load at least one image
input.LoadImage(image)
' Apply scale
input.Scale(400) ' 400% is 4 times larger
' Read image into variable: result
Dim result = ocr.Read(input)
' Example print to console
Console.WriteLine(result.Text)
Binärisierung
Filter-Erklärung
Der Binärisierungsfilter klassifiziert alle Pixel in einem Bild als entweder schwarz oder weiß, basierend auf einem adaptiven Algorithmus. Dies entfernt alle Farben und trennt den Hintergrund in ein flaches Weiß, wobei alles, was als Text erkannt wird, in ein vollständiges Schwarz eingefärbt wird, um das Lesen zu erleichtern.
Use-Case-Codebeispiel
Dies ist ein Beispiel für den Aufruf von Binarize(), um farbigen Text auszurichten und Hintergrundfarben und Rauschen zu entfernen:
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-6.cs
using IronOcr;
using System;
var image = @"no-binarize.jpg";
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load at least one image
input.LoadImage(image);
// Apply Binarize
input.Binarize();
// Read image into variable: result
var result = ocr.Read(input);
// Example print to console
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
Private image = "no-binarize.jpg"
Private ocr = New IronTesseract()
Private input = New OcrInput()
' Load at least one image
input.LoadImage(image)
' Apply Binarize
input.Binarize()
' Read image into variable: result
Dim result = ocr.Read(input)
' Example print to console
Console.WriteLine(result.Text)
| `` | `` |
|---|---|
![]() |
![]() |
Invertieren
Filter-Erklärung
IronOCR liest am besten, wenn das Bild die Form black text on a white background hat. Der Invert Filter wird verwendet, um dies durch Invertierung aller Farben in einem Bild zu erreichen.
Use-Case-Codebeispiel
Dies ist ein Beispiel für den Aufruf von Invert(), um Weiß auf Schwarz in Schwarz auf Weiß umzuwandeln:
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-7.cs
using IronOcr;
using System;
var image = @"before-invert.png";
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load at least one image
input.LoadImage(image);
// Apply Invert
input.Invert(true);
// Read image into variable: result
var result = ocr.Read(input);
// Example print to console
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
Private image = "before-invert.png"
Private ocr = New IronTesseract()
Private input = New OcrInput()
' Load at least one image
input.LoadImage(image)
' Apply Invert
input.Invert(True)
' Read image into variable: result
Dim result = ocr.Read(input)
' Example print to console
Console.WriteLine(result.Text)
Before |
After |
|---|---|
![]() |
![]() |
Häufig gestellte Fragen
Wie können Bildfilter die OCR-Genauigkeit in C# verbessern?
Bildfilter in IronOCR können Bilder vorverarbeiten, um deren Qualität zu verbessern und damit die OCR-Genauigkeit zu erhöhen. Filter wie Binarisieren und Kontrast verbessern die Lesbarkeit, indem sie Farben und Kontraste anpassen, während Drehen und Entschrägen die Bildorientierung korrigieren.
Welche Filter gibt es zur Korrektur der Bildorientierung?
IronOCR bietet Drehen und Entschrägen Filter zur Korrektur von Bildorientierungsproblemen. Drehen ermöglicht manuelle Anpassungen von Bildwinkeln, während Entschrägen automatisch leicht geneigte Bilder begradigt.
Wie wirkt sich der Binarisierungsfilter auf die Bildvorverarbeitung aus?
Der Binarisierungsfilter in IronOCR wandelt Bildpixel in Schwarzweiß um, wodurch Hintergrundfarben entfernt werden und die Textsichtbarkeit erhöht wird, insbesondere die OCR-Genauigkeit bei niedrigen Kontrastbedingungen verbessert wird.
Wann sollten Rauschreduktionsfilter verwendet werden?
Rauschreduktionsfilter wie Schärfen und Rauschunterdrückung sollten verwendet werden, wenn digitales Rauschen in Bildern vorhanden ist. Diese Filter reinigen das Bild und machen den Text klarer, um bessere OCR-Ergebnisse in IronOCR zu erzielen.
Kann die Verbesserung der Bildauflösung die OCR-Leistung beeinflussen?
Ja, der Einsatz des Auflösung verbessern Filters kann die OCR-Leistung verbessern, indem die Auflösung von Bildern niedriger Qualität erhöht wird. Obwohl die Standardeinstellungen für die Mindest-DPI und Ziel-DPI von IronOCR oft ausreichen, kann der Filter bei Bedarf zusätzliche Auflösungsverstärkung bieten.
Welche Rolle spielen Farbmanipulationsfilter in der OCR?
Farbmanipulationsfilter wie Invertieren, In Graustufen konvertieren und Binarisieren in IronOCR passen Bildfarben an, um die Lesbarkeit des Textes zu erhöhen. Invertieren ändert Farbschemata, In Graustufen konvertieren wandelt Bilder in Graustufen um, und Binarisieren reduziert Bilder auf Schwarzweiß.
Was ist der Unterschied zwischen Kontrast- und Schärfefiltern?
Der Kontrastfilter in IronOCR erhöht den Unterschied zwischen hellen und dunklen Bereichen und verbessert die Textklarheit, während der Schärfefilter Kanten hervorhebt, um den Text deutlicher zu machen, was beide die OCR-Erkennung verbessern.
Wie speichert und debuggt man gefilterte Bilder in IronOCR?
Um gefilterte Bilder in IronOCR zu speichern und zu debuggen, verwenden Sie die Funktion SaveAsImages nach dem Anwenden von Filtern. Dies hilft, die Filtereffekte zu visualisieren und sicherzustellen, dass die Vorverarbeitungsschritte die Bildqualität für OCR verbessert haben.
Welche fortgeschrittenen Morphologiefilter sind in IronOCR verfügbar?
IronOCR bietet fortgeschrittene Morphologiefilter wie Verdicken und Erodieren. Verdicken fügt Pixel zu Objektgrenzen hinzu, um Merkmale zu stärken, während Erodieren sie entfernt, beide werden verwendet, um Bilddetails für eine verbesserte OCR-Genauigkeit zu klären.







