Verbessern der Bildqualität für bessere OCR-Ergebnisse mit C# | IronOcr

C# Bildkorrekturfilter für verbessertes OCR-Lesen

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

IronOCR bietet fünf wesentliche Bildkorrekturfilter (schärfen, Auflösung verbessern, entrauschen, erweitern und erodieren), die Bilder vorverarbeiten, um die OCR-Genauigkeit deutlich zu verbessern, indem sie die Textklarheit erhöhen und das Rauschen vor der Textextraktion reduzieren.

Schnellstart: Schärfefilter für klaren Text anwenden

Verwenden Sie IronOCRs OcrImageInput, um ein verschwommenes Bild mit einer einzigen Codezeile zu schärfen. Dieses Beispiel demonstriert die Bildverbesserung für eine genaue OCR.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronOCR mit dem NuGet-Paketmanager.

    PM > Install-Package IronOcr

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    new IronOcr.OcrImageInput("sample.png").Sharpen().SaveAsImages("output.png");
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronOCR in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer


Wie wende ich den Scharfzeichnungsfilter an?

Dieser Filter erhöht den Kontrast entlang der Kanten im Bild und sorgt so für klarere Textgrenzen. Sie verbessert die Klarheit des Textes und macht die Zeichenerkennung genauer.

Warum verbessert die Schärfung die OCR-Genauigkeit?

Der Scharfzeichnungsfilter hebt die Grenzen zwischen Text und Hintergrund hervor, indem er den Kantenkontrast erhöht. Algorithmen zur Zeichenerkennung benötigen klare, deutliche Buchstabenformen, um richtig zu funktionieren. Unscharfer Text mit weichen Rändern - häufig bei gescannten Dokumenten oder Fotos von schlechter Qualität - führt dazu, dass OCR-Engines die Zeichengrenzen falsch erkennen. Wenn Sie mehr über die optimale Bildverarbeitung für OCR erfahren möchten, lesen Sie unseren umfassenden Leitfaden zu OCR-Bildoptimierungsfiltern.

Um den Scharfzeichnungsfilter anzuwenden, rufen Sie die Methode Scharfzeichnen des Objekts OcrImageInput auf:

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

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

// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Apply sharpen filter
imageInput.Sharpen();

// Export filtered image
imageInput.SaveAsImages("sharpen.jpg");
$vbLabelText   $csharpLabel

Wann sollte ich den Scharfzeichnungsfilter verwenden?

Verwenden Sie die Schärfung für leicht unscharfe Bilder, gescannte Dokumente mit weichen Texträndern oder Fotos, die bei schlechter Beleuchtung aufgenommen wurden. Vermeiden Sie es, den Text zu stark zu schärfen, da dies zu Artefakten führt und die Genauigkeit verringert. Kombinieren Sie bei extrem unscharfen Scans das Schärfen mit anderen Filtern oder lesen Sie unseren Leitfaden Fixing Low Quality Scans & Images.

Exportieren Sie gefilterte Bilder mit der Methode SaveAsImages. Unten sehen Sie einen Vorher-Nachher-Vergleich.

Blurred text sample showing business article content before applying sharpen filter
Text sample after sharpen filter application showing improved edge definition and character clarity

Wie kann ich die Auflösung für eine bessere OCR verbessern?

Dieser Filter erhöht die Pixeldichte und verbessert die Schärfe und Klarheit. Sie hilft OCR-Engines, Text in Bildern mit niedriger Auflösung genauer zu lesen.

Welchen DPI-Wert sollte ich für OCR anstreben?

OCR-Engines funktionieren am besten bei 300 DPI (dots per inch). Niedrigere Auflösungen führen zu einer falschen Erkennung von Zeichen; höhere Auflösungen verlangsamen die Verarbeitung, ohne die Genauigkeit zu verbessern. Der Verbesserungsfilter von IronOCR skaliert Bilder auf intelligente Weise auf optimale DPI-Werte hoch. Eine ausführliche Anleitung finden Sie in unserem Leitfaden zu den DPI-Einstellungen.

Rufen Sie die Methode EnhanceResolution auf, um diesen Filter anzuwenden. Das Standardziel ist 225 DPI:

using IronOcr;

// Create OCR input
var imageInput = new OcrImageInput("low-res-scan.jpg");

// Apply enhance resolution filter with default 225 DPI
imageInput.EnhanceResolution();

// Or specify a custom DPI
imageInput.EnhanceResolution(300);

// Combine with OCR reading
var ocr = new IronTesseract();
var result = ocr.Read(imageInput);
Console.WriteLine($"Extracted text: {result.Text}");
using IronOcr;

// Create OCR input
var imageInput = new OcrImageInput("low-res-scan.jpg");

// Apply enhance resolution filter with default 225 DPI
imageInput.EnhanceResolution();

// Or specify a custom DPI
imageInput.EnhanceResolution(300);

// Combine with OCR reading
var ocr = new IronTesseract();
var result = ocr.Read(imageInput);
Console.WriteLine($"Extracted text: {result.Text}");
$vbLabelText   $csharpLabel

Wann ist die Verbesserung der Auflösung am wichtigsten?

Die Verbesserung der Auflösung ist entscheidend für:

  • Screenshots in Bildschirmauflösung (72-96 DPI)
  • Aus dem Internet heruntergeladene Web-Bilder
  • Historische Dokumente, die mit niedriger Auflösung gescannt wurden
  • Faxübertragungen mit inhärent niedriger Auflösung

Das OCR Tesseract Image DPI Beispiel bietet Einblicke in die Auswirkungen der DPI auf die Genauigkeit verschiedener Dokumenttypen.

Low-resolution text sample showing blurry, pixelated business article requiring OCR enhancement
Resolution-enhanced text showing clearer characters after DPI improvement for better OCR accuracy

Wie entferne ich Rauschen aus Bildern?

Entrauschungsfilter reduzieren unerwünschte Artefakte in Bildern. Die Rauschunterdrückung isoliert den Text von Hintergrundstörungen und sorgt für sauberere und genauere OCR-Ergebnisse.

Was ist der Unterschied zwischen 2x2 und 3x3 Morphologie?

Die Morphologiegröße bestimmt die Stärke der Rauschunterdrückung. Eine 2x2-Morphologie wendet eine sanfte Rauschunterdrückung an, um Artefakte zu minimieren, während der feine Text erhalten bleibt. Die 3x3-Morphologie bietet eine aggressive Rauschentfernung für stark degradierte Dokumente, kann aber auch sehr kleinen Text beeinträchtigen.

Um den Rauschunterdrückungsfilter anzuwenden, verwenden Sie die DeNoise-Methode. Standardmäßig ist die Morphologie 2x2. Übergeben Sie 'true' für 3x3 Morphologie:

using IronOcr;

// Load noisy document
var imageInput = new OcrImageInput("noisy-scan.pdf");

// Apply denoise filter with default 2x2 morphology
imageInput.DeNoise();

// Apply stronger denoising with 3x3 morphology
imageInput.DeNoise(true);

// Combine with other filters for severely degraded images
imageInput.DeNoise()
         .Sharpen()
         .EnhanceResolution(300);

// Process with OCR
var ocr = new IronTesseract();
var result = ocr.Read(imageInput);

// Check confidence levels
foreach (var page in result.Pages)
{
    Console.WriteLine($"Page confidence: {page.Confidence}%");
}
using IronOcr;

// Load noisy document
var imageInput = new OcrImageInput("noisy-scan.pdf");

// Apply denoise filter with default 2x2 morphology
imageInput.DeNoise();

// Apply stronger denoising with 3x3 morphology
imageInput.DeNoise(true);

// Combine with other filters for severely degraded images
imageInput.DeNoise()
         .Sharpen()
         .EnhanceResolution(300);

// Process with OCR
var ocr = new IronTesseract();
var result = ocr.Read(imageInput);

// Check confidence levels
foreach (var page in result.Pages)
{
    Console.WriteLine($"Page confidence: {page.Confidence}%");
}
$vbLabelText   $csharpLabel

Woher weiß ich, ob mein Bild eine Entrauschung braucht?

Achten Sie auf diese Geräuschindikatoren:

  • Zufällige Sprenkel oder Punkte auf dem Hintergrund
  • Salz-und-Pfeffer-Rauschen durch schlechtes Scannen
  • Körnigkeit durch hohe ISO-Aufnahmen
  • Hintergrundtextur aus recyceltem Papier

Für die automatische Erkennung von Rauschen können Sie unseren Filter-Assistenten nutzen.

Noisy scanned document with speckles and artifacts degrading text about Japanese tech executives
Clean document after denoise filter removes background speckles and improves text clarity

Wie verwende ich den Dilate-Filter?

Dilatation vergrößert helle Bereiche in Bildern. Der Text wird verdichtet, so dass er deutlicher hervortritt und von OCR-Software leichter zu interpretieren ist.

Wann sollte ich Dilatation auf Text anwenden?

Die Dilatation funktioniert am besten bei dünnen oder gebrochenen Textzeichen, wie sie in:

  • Alte Schreibmaschinendokumente mit inkonsistenter Tinte
  • Verblichene Quittungen und Thermopapierausdrucke
  • Dokumente mit Hairline-Schriften
  • Überkomprimierter Text in Bildformaten

Dilatation füllt kleine Lücken innerhalb von Zeichen und verstärkt schwache Strichverbindungen. Dadurch wird verhindert, dass OCR-Engines unterbrochene Zeichen fälschlicherweise als mehrere Symbole interpretieren.

Um den Dilatationsfilter anzuwenden, verwenden Sie die Dilate-Methode. Die Standard-Morphologie ist 2x2; pass 'true' für 3x3:

using IronOcr;

// Create OCR engine
var ocrTesseract = new IronTesseract();

// Apply dilate filter
var imageInput = new OcrImageInput("thin-text.jpg");
imageInput.Dilate();

// For more aggressive dilation
imageInput.Dilate(true);

// Practical example for faded receipt processing
var receiptInput = new OcrImageInput("faded-receipt.jpg");
receiptInput.Dilate()
           .DeNoise()
           .EnhanceResolution(300);

// Configure for better receipt reading
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;
ocrTesseract.Configuration.ReadBarCodes = true;

// Perform OCR
var result = ocrTesseract.Read(receiptInput);
using IronOcr;

// Create OCR engine
var ocrTesseract = new IronTesseract();

// Apply dilate filter
var imageInput = new OcrImageInput("thin-text.jpg");
imageInput.Dilate();

// For more aggressive dilation
imageInput.Dilate(true);

// Practical example for faded receipt processing
var receiptInput = new OcrImageInput("faded-receipt.jpg");
receiptInput.Dilate()
           .DeNoise()
           .EnhanceResolution(300);

// Configure for better receipt reading
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;
ocrTesseract.Configuration.ReadBarCodes = true;

// Perform OCR
var result = ocrTesseract.Read(receiptInput);
$vbLabelText   $csharpLabel

Was sind häufige Probleme mit Überdilatation?

Übermäßige Dehnung kann zu Problemen führen:

  • Zeichenauslassungen, bei denen benachbarte Buchstaben ineinander übergehen
  • Verlust von internen Details (Löcher in 'e' oder '8')
  • Reduzierte Genauigkeit für fettgedruckten Text

Überwachen Sie die Ergebnisse und passen Sie sie entsprechend an. Bei Dokumenten mit gemischten Textgewichten sollten Sie unsere Filter zur Korrektur der Bildqualität selektiv einsetzen.

Document with thin text strokes that would benefit from dilation filtering for OCR
Text after dilation filter showing thickened character strokes and improved legibility

Wie wende ich den Erode-Filter an?

Erosion reduziert die Größe heller Bereiche in Bildern, verfeinert dicke oder verzerrte Zeichen und verbessert die Zeichentrennung.

Warum ist Erosion bei dickem Text hilfreich?

Erosion dünnt Textstriche aus und trennt sich berührende Zeichen. Dieser Filter zeichnet sich durch folgende Eigenschaften aus:

  • Überfärbte gedruckte Dokumente
  • Fotokopien mit Zeichenbeschnitt
  • Fettgedruckter Text, der zusammengeführt erscheint
  • Faxübertragungen in schlechter Qualität

Eine sorgfältige Erosion stellt die Zeichentrennung wieder her und verbessert die Erkennung einzelner Buchstaben, so dass ganze Wörter nicht falsch gelesen werden können.

Verwenden Sie die Methode Erode, um diesen Filter anzuwenden. Die Standard-Morphologie ist 2x2; pass 'true' für 3x3:

using IronOcr;

// Create OCR instance
var ocrTesseract = new IronTesseract();

// Load image with thick text
var imageInput = new OcrImageInput("thick-text.jpg");

// Apply erode filter
imageInput.Erode();

// Stronger erosion for heavily bleeding text
imageInput.Erode(true);

// Example: Processing a poor-quality photocopy
var photocopyInput = new OcrImageInput("thick-text-photocopy.pdf");

// Apply erosion followed by sharpening for best results
photocopyInput.Erode()
              .Sharpen()
              .EnhanceResolution(300);

// Configure OCR for better accuracy
ocrTesseract.Configuration.BlackListCharacters = "~`@#$%^&*()_+-={}[]|\\:\";<>?,./";
ocrTesseract.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ";

var ocrResult = ocrTesseract.Read(photocopyInput);

// Extract with confidence check
var highConfidenceText = ocrResult.Blocks
    .Where(b => b.Confidence > 90)
    .Select(b => b.Text);
using IronOcr;

// Create OCR instance
var ocrTesseract = new IronTesseract();

// Load image with thick text
var imageInput = new OcrImageInput("thick-text.jpg");

// Apply erode filter
imageInput.Erode();

// Stronger erosion for heavily bleeding text
imageInput.Erode(true);

// Example: Processing a poor-quality photocopy
var photocopyInput = new OcrImageInput("thick-text-photocopy.pdf");

// Apply erosion followed by sharpening for best results
photocopyInput.Erode()
              .Sharpen()
              .EnhanceResolution(300);

// Configure OCR for better accuracy
ocrTesseract.Configuration.BlackListCharacters = "~`@#$%^&*()_+-={}[]|\\:\";<>?,./";
ocrTesseract.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ";

var ocrResult = ocrTesseract.Read(photocopyInput);

// Extract with confidence check
var highConfidenceText = ocrResult.Blocks
    .Where(b => b.Confidence > 90)
    .Select(b => b.Text);
$vbLabelText   $csharpLabel

Wie schaffe ich ein Gleichgewicht zwischen Erosion und Lesbarkeit des Textes?

Um den richtigen Erosionsgrad zu finden, sind sorgfältige Tests erforderlich:

  • Beginnen Sie mit der Standard-Morphologie 2x2
  • Test an repräsentativen Dokumentenbeispielen
  • Überprüfen Sie, dass Satzzeichen sichtbar bleiben
  • Sicherstellen, dass dünne Schriftarten nicht kaputt gehen

Für Dokumente mit gemischten Textgewichten, siehe unsere erweiterten Konfigurationsoptionen.

Document with merged/thick characters that would benefit from erosion filter processing
Text after erosion filter showing separated characters and refined stroke thickness

Wie speichere ich gefilterte Bilder als durchsuchbare PDFs?

Mit IronOCR können Sie geänderte PDFs mit Filtern oder in ihrem ursprünglichen Zustand speichern. Der zweite Parameter der Methode SaveAsSearchablePdf bestimmt, ob mit Filtern gespeichert werden soll.

Was ist der Vorteil der Speicherung von Filteränderungen?

Die Beibehaltung von Filteränderungen bietet mehrere Vorteile:

  • Erzeugt sauberere, besser lesbare Dokumente
  • Wahrung der Konsistenz über mehrere Dokumentenstapel hinweg
  • Bietet eine visuelle Bestätigung für die Verbesserung der Textqualität
  • Ermöglicht Vergleiche zur Qualitätskontrolle

Bei der Erstellung durchsuchbarer PDFs wird eine OCR-Textebene eingebettet, wobei das visuelle Erscheinungsbild erhalten bleibt. Erfahren Sie mehr in unserem Leitfaden zur Erstellung durchsuchbarer PDFs.

using IronOcr;

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

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

// Apply multiple filters for comprehensive improvement
ocrInput.ToGrayScale()
        .DeNoise()
        .Sharpen()
        .EnhanceResolution(300);

// Perform OCR
OcrResult result = ocr.Read(ocrInput);

// Save the result as a searchable PDF with filters applied
result.SaveAsSearchablePdf("outputFiltered.pdf", true);

// Or save without filters to preserve original appearance
result.SaveAsSearchablePdf("outputOriginal.pdf", false);

// Export to other formats
result.SaveAsTextFile("extracted-text.txt");
result.SaveAsHocrFile("output.html");
using IronOcr;

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

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

// Apply multiple filters for comprehensive improvement
ocrInput.ToGrayScale()
        .DeNoise()
        .Sharpen()
        .EnhanceResolution(300);

// Perform OCR
OcrResult result = ocr.Read(ocrInput);

// Save the result as a searchable PDF with filters applied
result.SaveAsSearchablePdf("outputFiltered.pdf", true);

// Or save without filters to preserve original appearance
result.SaveAsSearchablePdf("outputOriginal.pdf", false);

// Export to other formats
result.SaveAsTextFile("extracted-text.txt");
result.SaveAsHocrFile("output.html");
$vbLabelText   $csharpLabel

Wie wähle ich zwischen gefilterten und Original-PDFs?

Mit Filtern speichern (wahr) wenn:

  • Die Qualität des Originaldokuments ist schlecht
  • Ein einheitliches Erscheinungsbild der Dokumente ist erforderlich
  • Gefilterte Version verbessert die Lesbarkeit erheblich
  • Archivierung von Dokumenten für die Langzeitarchivierung

Speichern ohne Filter (false) wenn:

  • Die Wahrung des ursprünglichen Erscheinungsbildes ist gesetzlich vorgeschrieben
  • Farbinformationen sind wichtig
  • Die Authentizität des Dokuments muss gewahrt werden
  • Filter werden nur für die OCR-Genauigkeit benötigt

Weitere Optionen für die PDF-Verarbeitung finden Sie in unserem PDF OCR Text Extraction guide. Optimale Filterkombinationen finden Sie im Filter Wizard Tutorial.

Häufig gestellte Fragen

Welche Bildfilter können die OCR-Genauigkeit in C# verbessern?

IronOCR bietet fünf wesentliche Bildkorrekturfilter: Schärfen, Auflösung verbessern, Entrauschen, Dilatieren und Erodieren. Diese Filter bereiten Bilder vor, um die OCR-Genauigkeit erheblich zu verbessern, indem sie die Textklarheit erhöhen und das Rauschen vor der Textextraktion reduzieren.

Wie kann ich ein unscharfes Bild schärfen, um den Text besser zu erkennen?

Sie können ein unscharfes Bild mit IronOCR's OcrImageInput mit einer einzigen Zeile Code schärfen: new IronOcr.OcrImageInput("sample.png").Sharpen(). Dieser Filter erhöht den Kontrast entlang der Kanten des Bildes und schafft so klarere Textgrenzen für eine bessere Zeichenerkennung.

Warum verbessert die Schärfung die OCR-Genauigkeit?

Der Schärfefilter in IronOCR hebt die Grenzen zwischen Text und Hintergrund hervor, indem er den Kantenkontrast verstärkt. Dies ist entscheidend, da Algorithmen zur Zeichenerkennung klare, deutliche Buchstabenformen benötigen, um richtig zu funktionieren. Unscharfer Text mit weichen Kanten führt dazu, dass OCR-Engines die Buchstabengrenzen falsch erkennen.

Wann sollte ich den Scharfzeichnungsfilter für OCR verwenden?

Verwenden Sie den Schärfefilter von IronOCR für leicht unscharfe Bilder, gescannte Dokumente mit weichen Texträndern oder Fotos, die bei schlechter Beleuchtung aufgenommen wurden. Vermeiden Sie es, klaren Text zu stark zu schärfen, da dies zu Artefakten führt und die Genauigkeit verringert.

Welchen DPI-Wert sollte ich für eine optimale OCR-Leistung anstreben?

IronOCR arbeitet am besten mit Bildern mit einer Auflösung von 300 DPI (dots per inch). Niedrigere Auflösungen führen zu einer falschen Erkennung von Zeichen, während höhere Auflösungen die Verarbeitung verlangsamen, ohne die Genauigkeit zu verbessern. Verwenden Sie den Filter Auflösung verbessern, um die Pixeldichte in Bildern mit niedriger Auflösung zu erhöhen.

Kann ich gefilterte Bilder nach der Anwendung von Korrekturen exportieren?

Ja, IronOCR ermöglicht es Ihnen, gefilterte Bilder mit der SaveAsImages-Methode zu exportieren. Dadurch können Sie Vorher-Nachher-Vergleiche Ihrer Bildkorrekturen anzeigen und die Verbesserungen vor der OCR-Ausführung überprüfen.

Was ist der minimale Arbeitsablauf für die Anwendung von Bildfiltern?

Der minimale Arbeitsablauf mit IronOCR umfasst 5 Schritte: Herunterladen der Bibliothek, Importieren der PDF-Datei oder der Bilder, Anwenden der gewünschten Filter (schärfen, Auflösung verbessern, entrauschen, dehnen, erodieren), Exportieren des korrigierten Bildes zur Ansicht und Verwenden der Lesemethode für die OCR-Verarbeitung.

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
Bereit anzufangen?
Nuget Downloads 5,299,091 | Version: 2025.12 gerade veröffentlicht