Guide to using IronOCR Filters

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

IronOCR bietet die Werkzeuge, die Sie benötigen, um Bilder zu lesen, die möglicherweise eine Vorverarbeitung in Form von Filtern benötigen. Sie können aus einer großen Auswahl an Filtern wählen, die Ihre Bilder so manipulieren können, dass sie verarbeitet werden können.

als-Überschrift:2(Schnellstart: Filter anwenden, um OCR-Bilder zu bereinigen)

Mit nur einer einfachen Aufrufkette können Sie DeNoise-, Binärisierungs- und Ausrichtungsfilter anwenden, um die Scanqualität vor OCR zu verbessern. Dieses Beispiel zeigt, wie einfach es ist, Bilder mit den eingebauten Filtern von IronOCR zu verbessern und sofort loszulegen.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. Copy and run this code snippet.

    using var input = new IronOcr.OcrInput("scan.jpg"); input.DeNoise(true).Binarize().Deskew(45); var result = new IronOcr.IronTesseract().Read(input);
  3. Deploy to test on your live environment

    Start using IronOCR in your project today with a free trial
    arrow pointer

Liste der OCR-Bildfilter

Die folgenden Bildfilter können die Leistung wirklich verbessern:

  • Filter zum Ändern der Bildorientierung
    • Drehen - Dreht Bilder um eine Anzahl von Grad im Uhrzeigersinn. Für gegen den Uhrzeigersinn verwenden Sie negative Zahlen.
    • Entzerrung - 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.
    • Skalieren - Skaliert OCR-Eingabeseiten proportional.
  • Filter zur Manipulation von Bildfarben
    • Binärisierung - Dieser Bildfilter macht jeden Pixel schwarz oder weiß, ohne einen Mittelton. Dies kann die OCR-Leistung bei sehr geringem Text-Hintergrund-Kontrast verbessern.
    • In Graustufen verwandeln - Dieser Bildfilter macht jeden Pixel zu einem Grauton. Ist unwahrscheinlich, dass dies die OCR-Genauigkeit verbessert, könnte jedoch die Geschwindigkeit verbessern.
    • Invertieren - Invertiert jede Farbe. Z.B. Weiß wird schwarz und umgekehrt.
    • Farbe ersetzen - Ersetzt eine Farbe in einem Bild durch eine andere Farbe innerhalb eines bestimmten Schwellenwerts.
  • Filter zur Verbesserung des Kontrasts in einem Bild
    • Kontrast - Erhöht den Kontrast automatisch. Dieser Filter verbessert oft die OCR-Geschwindigkeit und -Genauigkeit bei niedrigen Kontrast-Scans.
    • Erweitern - Erweiterte Morphologie. Dilatation fügt Pixel zu den Rändern von Objekten in einem Bild hinzu. Gegenteil von Erosion.
    • Erodieren - Erweiterte Morphologie. Erosion entfernt Pixel von Objektgrenzen. Gegenteil von Dilatation.
  • Filter zur Reduzierung von Bildrauschen
    • Schärfen - Schärft verschwommene OCR-Dokumente und glättet Alphakanäle zu Weiß.
    • Rauschunterdrückung - Entfernt digitales Rauschen. Dieser Filter sollte nur in Szenarien verwendet werden, in denen Rauschen erwartet wird.
    • Tiefgehende Hintergrundrauschunterdrückung - Starkes Entfernen von Hintergrundrauschen. Verwenden Sie diesen Filter nur, wenn ein extremes Dokumenthintergrundrauschen bekannt ist, da er die OCR-Genauigkeit sauberer Dokumente verringern kann und CPU-intensive ist.
    • Auflösung verbessern - Verbessert die Auflösung von minderwertigen Bildern. Dieser Filter wird oft nicht benötigt, da OcrInput.MinimumDPI und OcrInput.TargetDPI automatisch niedrige Auflösungen erkennen und beheben.

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)
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

Filter-Einsatzmöglichkeiten

Drehen

API-Referenz

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 Funktionen zur Ausführung von Entzerren(), jedoch ist der Toleranzgrad dafür ziemlich eng und am besten für fast perfekt gerade Bilder geeignet (innerhalb von ca. 15 Grad). Für Eingabebilder, die um 90 Grad abweichen oder auf dem Kopf stehen, sollten wir Drehen() aufrufen.

Use-Case-Codebeispiel

Dies ist ein Beispiel für den Aufruf von Drehen, 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)
$vbLabelText   $csharpLabel
VorEingabe.Drehen(180)`` NachEingabe.Drehen(180)``
Screenshot related to Use-Case-Codebeispiel Screenshot Rotated related to Use-Case-Codebeispiel

Entzerren

API-Referenz

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.

Hinweis:Diese Methode gibt einen Booleschen Wert zurück, der wahr ist, wenn der Filter angewendet wurde, und falsch, wenn er aufgrund der Unfähigkeit, die Bildausrichtung zu erkennen, nicht angewendet werden konnte. Dies schlägt fehl, wenn die Seite keinen Inhalt hat, um die Orientierung zu definieren.

Use-Case-Codebeispiel

Dies ist ein Beispiel für den Aufruf von Entzerren, um ein gekipptes Bild zu korrigieren:

: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
$vbLabelText   $csharpLabel
VorEntzerren()`` NachEntzerren()``
Paragraph Skewed related to Use-Case-Codebeispiel Paragraph Deskewed related to Use-Case-Codebeispiel

Skalieren

API-Referenz

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.

Hinweis:Es gibt eine ideale Größe für Barcodes von 1000px x 1000px, bei der Barcodes gut gelesen werden können, was in Betracht gezogen werden sollte, wenn Ihr Barcode nicht gefunden wird.

Use-Case-Codebeispiel

Dies ist ein Beispiel für den Aufruf von Skalieren, um die Lücken zwischen den Balken eines Barcodes für das 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)
$vbLabelText   $csharpLabel
VorSkalieren()`` NachSkalieren()``
C Sharp Ocr Image Filters 1 related to Use-Case-Codebeispiel C Sharp Ocr Image Filters 2 related to Use-Case-Codebeispiel

Binärisierung

API-Referenz

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 Binärisieren, 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)
$vbLabelText   $csharpLabel
VorBinärisierung()`` NachBinärisierung()``
No Binarize related to Use-Case-Codebeispiel After Binarize related to Use-Case-Codebeispiel

Invertieren

API-Referenz

Filter-Erklärung

IronOCR liest am besten, wenn das Bild schwarzer Text auf weißem Hintergrund ist. Der Invertierungsfilter wird verwendet, um dies zu erreichen, indem alle Farben in einem Bild invertiert werden.

Use-Case-Codebeispiel

Dies ist ein Beispiel für den Aufruf von Invertieren, um Weiß auf Schwarz in Schwarz auf Weiß zu verwandeln:

: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)
$vbLabelText   $csharpLabel
Vorher Nachher
Before Invert related to Use-Case-Codebeispiel After Invert related to Use-Case-Codebeispiel

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.

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,044,537 | Version: 2025.11 gerade veröffentlicht