Wie man den Filter-Assistenten in C#35; für eine bessere OCR verwendet

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

Der IronOCR Filter Wizard testet automatisch alle Kombinationen von Vorverarbeitungsfiltern auf Ihrem Bild, um optimale OCR-Einstellungen zu finden, und gibt sowohl den höchsten Konfidenzwert als auch den genauen C#-Code zurück, der zur Reproduktion der Ergebnisse erforderlich ist.

Die Vorverarbeitung von Bildern für OCR kann eine Herausforderung sein. Mehrere Filter können die Erkennung verbessern, aber um die richtige Kombination zu finden, muss viel ausprobiert werden. Jedes Bild stellt eine besondere Herausforderung dar, was die manuelle Prüfung zeitaufwändig macht. Dies gilt insbesondere bei der Arbeit mit Scans niedriger Qualität oder Bildern mit unterschiedlichem Rausch- und Verzerrungsgrad.

Der OcrInputFilterWizard von IronOCR löst dieses Problem. Der Filter-Assistent wertet automatisch Filterkombinationen aus, um die OCR-Sicherheit und -Genauigkeit zu maximieren. Sie führt ausführliche Tests für optimale Einstellungen durch und gibt die beste Filterkombination als Codeschnipsel zurück, was eine einfache Reproduktion der Ergebnisse ermöglicht. Diese Funktion fügt sich nahtlos in die OcrInput-Klasse ein und vereinfacht die Filteranwendung für Ihre Bilder.

Dieser Leitfaden demonstriert die Funktionsweise des Filter-Assistenten und zeigt die verwendeten Codeschnipsel und Parameter. Weitere Informationen zur Optimierung des OCR-Workflows finden Sie in unserem Leitfaden zur Bildqualitätskorrektur.

Schnellstart: Ihre ideale Bildfilterkette automatisch entdecken

Verwenden Sie den Filter-Assistenten von IronOCR, um alle Kombinationen von Preprocessing-Filtern zu testen und den leistungsfähigsten Codeschnipsel zu erhalten. In einer Zeile werden der höchste Konfidenzwert und die genaue C#-Filterkette für ähnliche Bilder angezeigt.

```cs :title=Sofort die besten OCR-Filter erhalten string code = OcrInputFilterWizard.Run("image.png", out double confidence, new IronTesseract());


<div class="hsg-featured-snippet">
    <h3>Minimaler Arbeitsablauf (5 Schritte)</h3>
    <ol>
        <li>Download einer C#-Bibliothek zur Verwendung des Filter-Assistenten</li>
        <li>Instanziierung der IronTesseract-Engine</li>
        <li>Laden Sie das Eingabebild in den<code>OcrInputFilterWizard</code></li>
        <li><code>Führen Sie</code> den Filterassistenten aus und überprüfen Sie die Ergebnisse, wie z. B. das Vertrauen</li>
        <li>Verwenden Sie den vorgegebenen Code und wenden Sie ihn auf das Eingabebild an, und überprüfen Sie die Ergebnisse</li>
    </ol>
</div>

## Wie funktioniert der Filter-Assistent?

Die Methode `OcrInputFilterWizard.Run` benötigt drei Parameter: das Eingabebild, einen Out-Parameter für das resultierende Konfidenzniveau und die Instanz der Tesseract Engine. Für fortgeschrittene Motorsteuerung siehe unseren Leitfaden zur [Tesseract Detailkonfiguration](https://ironsoftware.com/csharp/ocr/examples/csharp-configure-setup-tesseract/).

Es werden mehrere Kombinationen von Preprocessing-Filtern getestet, um den besten Konfidenzwert zu erzielen. Der höchste Konfidenzwert bestimmt, welcher Filtersatz auf Ihr Eingabebild anzuwenden ist. Dieser Ansatz eignet sich gut für anspruchsvolle Bilder, die eine [Bildausrichtungskorrektur](https://ironsoftware.com/csharp/ocr/how-to/image-orientation-correction/) oder andere komplexe Vorverarbeitungsschritte erfordern.

Der Filter-Assistent hat keine Voreinstellungen oder Kombinationsgrenzen. Der Schwerpunkt liegt auf dem Erreichen des bestmöglichen Vertrauenswertes durch umfassende Filtertests. Für Echtzeit-Feedback während der Verarbeitung implementieren Sie [Fortschrittsverfolgung](https://ironsoftware.com/csharp/ocr/how-to/progress-tracking/), um die Vorgänge des Assistenten zu überwachen.

Verfügbare Filter im Kombinationstest:

- `input.Contrast()` - Passt den Kontrast an, damit der Text klarer wird
- `input.Sharpen()` - Verbessert die Kantenschärfe
- `input.Binarize()` - Konvertiert in Schwarz und Weiß
- `input.ToGrayScale()` - Entfernt Farbinformationen
- `input.Invert()` - Invertiert Farben
- `input.Deskew()` - Korrigiert schiefen Text
- `input.Scale(...)` - Ändert die Größe auf optimale Dimensionen
- `input.Denoise()` - Entfernt Pixelrauschen
- `input.DeepCleanBackgroundNoise()` - Erweiterte Rauschentfernung
- `input.EnhanceResolution()` - Verbessert die Auflösung bei niedriger Qualität
- `input.Dilate()`, `input.Erode()` - Textverfeinerungsoperationen

Ausführliche Informationen zu Filtern finden Sie in diesem [Tutorial zu Bildfiltern](https://ironsoftware.com/csharp/ocr/tutorials/c-sharp-ocr-image-filters/). Weitere Vorverarbeitungstechniken sind im Leitfaden [Bildkorrekturfilter](https://ironsoftware.com/csharp/ocr/how-to/image-correction-filters/) zu finden.

Diese ausführliche Testmethode erfordert Bearbeitungszeit. Für umfangreiche Operationen sollten Sie [Multithreading-Unterstützung](https://ironsoftware.com/csharp/ocr/how-to/async/) verwenden, um mehrere Bilder gleichzeitig zu verarbeiten.

### Welche Art von Bild sollte ich für den Test verwenden?

In diesem Beispiel wird ein Screenshot mit starkem künstlichem Rauschen verwendet, um die Funktionalität des Filterassistenten zu demonstrieren. Der Filter-Assistent verarbeitet effektiv verschiedene Bildtypen, von [gescannten Dokumenten](https://ironsoftware.com/csharp/ocr/how-to/read-scanned-document/) bis zu [Fotos mit Text](https://ironsoftware.com/csharp/ocr/how-to/read-photo/).

<div class="content-img-align-center">
    <div class="center-image-wrapper" style="width=50%">
         <img src="/static-assets/ocr/how-to/filter-wizard/filter-wizard-sample.webp" alt="Stark beschädigtes Testbild mit Rauschmuster, das degradierten Text zur Demonstration des Filterassistenten zeigt" class="img-responsive add-shadow">
    </div>
</div>

Berücksichtigen Sie bei der Auswahl von Testbildern diese Faktoren:
- **Bildauflösung**: Bilder mit höherem DPI-Wert liefern in der Regel bessere Ergebnisse. In unserem Leitfaden zu [DPI-Einstellungen](https://ironsoftware.com/csharp/ocr/how-to/dpi-setting/) finden Sie Tipps zur Optimierung.
- **Dokumententyp**: Verschiedene Dokumenttypen profitieren von bestimmten Filterkombinationen. [Identitätsdokumente](https://ironsoftware.com/csharp/ocr/troubleshooting/identity-documents/) erfordern möglicherweise eine andere Vorverarbeitung als normale Textdokumente.
- **Quellenqualität**: Der Filter-Assistent eignet sich hervorragend für problematische Bilder, aber er beginnt mit der höchstmöglichen Qualität der verfügbaren Quelle, wenn möglich.

### Wie führe ich den Filter-Assistenten in meinem Code aus?

```csharp
:path=/static-assets/ocr/content-code-examples/how-to/filter-wizard-process.cs

Der Filter-Assistent verarbeitet verschiedene Eingabeformate. Informationen zu unterstützten Formaten finden Sie in unserem Leitfaden zu Eingabebildern. Sie können auch PDF-Dateien verarbeiten oder direkt mit Streams für dynamische Bildquellen arbeiten.

Für Stapelverarbeitungsszenarien können Sie dieses erweiterte Beispiel verwenden:

/* :path=/static-assets/ocr/content-code-examples/how-to/filter-wizard-batch.cs */
using IronOcr;
using System;
using System.IO;

// Process multiple similar images
var ocr = new IronTesseract();
string[] imageFiles = Directory.GetFiles(@"C:\Images", "*.png");

// Run Filter Wizard on first image to discover optimal settings
string optimalCode = OcrInputFilterWizard.Run(imageFiles[0], out double baselineConfidence, ocr);
Console.WriteLine($"Baseline confidence: {baselineConfidence:P2}");
Console.WriteLine($"Optimal filter sequence discovered");

// Apply discovered filters to all images
foreach (string imagePath in imageFiles)
{
    using (var input = new OcrImageInput(imagePath))
    {
        // Apply the filter sequence discovered by the wizard
        // The actual filters would be applied here based on the wizard output
        var result = ocr.Read(input);
        Console.WriteLine($"Processed: {Path.GetFileName(imagePath)} - Confidence: {result.Confidence:P2}");
    }
}
/* :path=/static-assets/ocr/content-code-examples/how-to/filter-wizard-batch.cs */
using IronOcr;
using System;
using System.IO;

// Process multiple similar images
var ocr = new IronTesseract();
string[] imageFiles = Directory.GetFiles(@"C:\Images", "*.png");

// Run Filter Wizard on first image to discover optimal settings
string optimalCode = OcrInputFilterWizard.Run(imageFiles[0], out double baselineConfidence, ocr);
Console.WriteLine($"Baseline confidence: {baselineConfidence:P2}");
Console.WriteLine($"Optimal filter sequence discovered");

// Apply discovered filters to all images
foreach (string imagePath in imageFiles)
{
    using (var input = new OcrImageInput(imagePath))
    {
        // Apply the filter sequence discovered by the wizard
        // The actual filters would be applied here based on the wizard output
        var result = ocr.Read(input);
        Console.WriteLine($"Processed: {Path.GetFileName(imagePath)} - Confidence: {result.Confidence:P2}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Welche Ergebnisse liefert der Filter Wizard?

Konsolenausgabe des Filter-Assistenten mit 65 % Konfidenzniveau und generiertem C#-Code mit Bildverarbeitungsmethoden

Die Ausgabe des Filterassistenten zeigt 65 % Konfidenz als bestmögliches Ergebnis für dieses spezielle Bild an. Konfidenzwerte sind eine wichtige Kennzahl für die Bewertung der OCR-Genauigkeit. Erfahren Sie mehr über Ergebniszuverlässigkeit in unserem speziellen Leitfaden.

Das Eingabebild enthält extreme Verzerrungen und künstliches Rauschen. Dies demonstriert die Fähigkeiten des Filter-Assistenten in schwierigen Szenarien. Für die Verwendung in der Produktion sollten Sie nach Möglichkeit mit qualitativ hochwertigeren Quellbildern beginnen.

Das generierte Code-Snippet bietet:

  • Exakte Filterreihenfolge: Die Reihenfolge der Operationen ist entscheidend für optimale Ergebnisse
  • Methodenverkettung: Sauberer, lesbarer Code, der leicht zu implementieren ist
  • Keine Parameter zu erraten: Jeder Filter ist für die beste Leistung konfiguriert

Wie wende ich die empfohlene Filterkombination an?

Wenden Sie nach dem Ausführen des Filter-Assistenten die bereitgestellten Einstellungen für den Codeschnipsel auf Ihr Eingabebild an, um die Ergebnisse und die Zuverlässigkeit zu überprüfen. Dies gewährleistet reproduzierbare Ergebnisse bei ähnlichen Bildern in Ihrer Dokumentenverarbeitungspipeline.

Wie ist der empfohlene Code zu implementieren?

:path=/static-assets/ocr/content-code-examples/how-to/filter-wizard-best-combination.cs
using IronOcr;
using System;

// Initialize the Tesseract engine
var ocrTesseract = new IronTesseract();

// Load the image into an OcrInput object
using (var input = new OcrImageInput("noise.png"))
{
    // Apply the exact filter chain recommended by the Wizard's output
    input.Invert();
    input.DeNoise();
    input.Contrast();
    input.AdaptiveThreshold();

    // Run OCR on the pre-processed image
    OcrResult result = ocrTesseract.Read(input);

    // Print the final result and confidence
    Console.WriteLine($"Result: {result.Text}");
    Console.WriteLine($"Confidence: {result.Confidence}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Die Reihenfolge der Filteranwendungen ist von großer Bedeutung. Der Filter-Assistent bestimmt sowohl die zu verwendenden Filter als auch deren optimale Reihenfolge. Diese intelligente Abfolge macht den Filter-Assistenten zu einem wertvollen Werkzeug für komplexe Preprocessing-Szenarien.

Um die Kontrolle über den OCR-Prozess zu verbessern, sollten Sie die Implementierung von Fehlerbehandlung und Validierung in Betracht ziehen:

/* :path=/static-assets/ocr/content-code-examples/how-to/filter-wizard-validation.cs */
using IronOcr;
using System;

var ocrEngine = new IronTesseract();

try
{
    using (var input = new OcrImageInput(@"C:\Images\document.png"))
    {
        // Apply Filter Wizard recommended sequence
        input.Invert();
        input.DeNoise();
        input.Contrast();
        input.AdaptiveThreshold();

        // Configure additional OCR settings
        ocrEngine.Configuration.ReadBarCodes = false;
        ocrEngine.Configuration.RenderSearchablePdf = true;

        // Perform OCR with timeout protection
        var result = ocrEngine.Read(input);

        // Validate results
        if (result.Confidence >= 0.6)
        {
            Console.WriteLine("OCR successful with high confidence");
            // Process the extracted text
        }
        else
        {
            Console.WriteLine("Low confidence result - consider manual review");
        }
    }
}
catch (Exception ex)
{
    Console.WriteLine($"OCR processing error: {ex.Message}");
}
/* :path=/static-assets/ocr/content-code-examples/how-to/filter-wizard-validation.cs */
using IronOcr;
using System;

var ocrEngine = new IronTesseract();

try
{
    using (var input = new OcrImageInput(@"C:\Images\document.png"))
    {
        // Apply Filter Wizard recommended sequence
        input.Invert();
        input.DeNoise();
        input.Contrast();
        input.AdaptiveThreshold();

        // Configure additional OCR settings
        ocrEngine.Configuration.ReadBarCodes = false;
        ocrEngine.Configuration.RenderSearchablePdf = true;

        // Perform OCR with timeout protection
        var result = ocrEngine.Read(input);

        // Validate results
        if (result.Confidence >= 0.6)
        {
            Console.WriteLine("OCR successful with high confidence");
            // Process the extracted text
        }
        else
        {
            Console.WriteLine("Low confidence result - consider manual review");
        }
    }
}
catch (Exception ex)
{
    Console.WriteLine($"OCR processing error: {ex.Message}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Was sind die endgültigen OCR-Ergebnisse nach Anwendung von Filtern?

Terminal zeigt OCR-Ergebnisse: extrahierter Text 'Testing: Testin' mit 65,61% Konfidenz nach Anwendung des Filterassistenten

IronOCR extrahiert den meisten Text selbst unter stark verzerrten Bedingungen. Die Vertrauensstufe entspricht dem Bericht des Filterassistenten. Detaillierte Informationen zur Behandlung von OCR-Ergebnissen finden Sie in unserem Leitfaden zur Datenausgabe.

Welche Tipps für Fortgeschrittene sollte ich beachten?

Beachten Sie diese Best Practices, wenn Sie den Filter Wizard in der Produktion verwenden:

  1. Stapelverarbeitung: Testen Sie an repräsentativen Beispielen und wenden Sie die Filterkette dann auf ähnliche Bilder an.

  2. Leistungsoptimierung: Der Filter-Assistent ist gründlich, aber zeitaufwändig. Für eine schnellere OCR, siehe schnelle OCR-Konfiguration.

  3. Benutzerdefinierte Sprachunterstützung: Für nicht-englische Texte können Sie mehrere Sprachen verwenden, um die Erkennung zu optimieren.

  4. API-Integration: Besuchen Sie unsere API-Referenz für eine vollständige Dokumentation.

  5. Dokumentenspezifische Optimierung: Verschiedene Dokumenttypen profitieren von speziellen Ansätzen:

  6. Speichermanagement: Ordnungsgemäßes Entsorgen von OcrInput-Objekten mit der using-Anweisung.

  7. Fehlerbehebung: Implementierung von Ausweichstrategien für Ergebnisse mit geringer Zuverlässigkeit. Ziehen Sie für kritische Dokumente eine manuelle Überprüfung in Betracht.

Der Filter-Assistent bietet eine leistungsstarke automatische Vorverarbeitungserkennung für optimale OCR-Ergebnisse. Durch die automatische Ermittlung der besten Vorverarbeitungspipeline für Ihre spezifischen Bilder wird das Rätselraten bei der Bildvorbereitung eliminiert und eine konsistente, qualitativ hochwertige Textextraktion in Ihren Anwendungen gewährleistet.

Häufig gestellte Fragen

Was ist der OCR-Filter-Assistent und wie hilft er bei der Bildvorverarbeitung?

Der IronOCR Filter Wizard ist ein automatisiertes Tool, das alle möglichen Kombinationen von Vorverarbeitungsfiltern für Ihr Bild testet, um optimale OCR-Einstellungen zu finden. Er macht das manuelle Ausprobieren überflüssig, indem er automatisch verschiedene Filterkombinationen evaluiert, um die OCR-Sicherheit und -Genauigkeit zu maximieren, und gibt dann die beste Filterkombination als einsatzbereites C#-Codefragment zurück.

Wie verwende ich den Filter Wizard in meiner C#-Anwendung?

Die Verwendung des IronOCR-Filterassistenten ist einfach - rufen Sie einfach OcrInputFilterWizard.Run() mit Ihrem Bildpfad, einem Out-Parameter für die Konfidenzbewertung und einer IronTesseract-Instanz auf. Zum Beispiel: string code = OcrInputFilterWizard.Run("image.png", out double confidence, new IronTesseract());

Welche Parameter akzeptiert die Methode OcrInputFilterWizard.Run?

Die Methode OcrInputFilterWizard.Run in IronOCR benötigt drei Parameter: das Eingabebild (als Dateipfad), einen Out-Parameter, der die resultierende Konfidenzstufe zurückgibt, und eine Instanz der IronTesseract Engine für die Verarbeitung.

Warum sollte ich den Filter-Assistenten verwenden, anstatt Filter manuell zu testen?

Die manuelle Vorverarbeitung von Filtertests ist zeitaufwändig und anspruchsvoll, insbesondere bei Scans von geringer Qualität oder Bildern mit unterschiedlichem Rauschpegel. Der Filterassistent von IronOCR automatisiert diesen Prozess, indem er Filterkombinationen umfassend testet und die höchste Konfidenzstufe mit dem exakt benötigten C#-Code zurückgibt, was erhebliche Entwicklungszeit spart.

Wie ermittelt der Filter-Assistent die beste Filterkombination?

Der Filter-Assistent von IronOCR testet mehrere Kombinationen von Vorverarbeitungsfiltern auf Ihrem Bild und misst den OCR-Konfidenzwert für jede Kombination. Anschließend wählt er den Filtersatz aus, der den höchsten Konfidenzwert erzielt, und gibt diese optimale Kombination als ausführbaren C#-Code zurück.

Kann der Filter-Assistent auch mit qualitativ schlechten oder verrauschten Bildern arbeiten?

Ja, der Filterassistent von IronOCR ist besonders effektiv bei schwierigen Bildern, einschließlich Scans von geringer Qualität und Bildern mit unterschiedlichen Rausch- und Verzerrungswerten. Er findet automatisch die optimale Vorverarbeitungskombination, um die OCR-Genauigkeit auch bei schwierigem Ausgangsmaterial zu maximieren.

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,246,844 | Version: 2025.12 gerade veröffentlicht