Jak korzystać z kreatora filtrów w języku C# w celu uzyskania lepszych wyników OCR
Kreator filtrów IronOCR automatycznie testuje wszystkie kombinacje filtrów przetwarzania wstępnego na obrazie, aby znaleźć optymalne ustawienia OCR, zwracając zarówno najwyższy wynik pewności, jak i dokładny kod C# potrzebny do odtworzenia wyników.
Wstępne przetwarzanie obrazów do OCR może stanowić wyzwanie. Wiele filtrów może poprawić rozpoznawanie, ale znalezienie odpowiedniej kombinacji wymaga wielu prób i błędów. Każdy obrazek stanowi wyjątkowe wyzwanie, co sprawia, że ręczne testowanie jest czasochłonne. Dotyczy to w szczególności sytuacji, gdy pracujemy z niskiej jakości skanami lub obrazami o różnym poziomie szumów i zniekształceń.
IronOCR's OcrInputFilterWizard rozwiazuje ten problem. Kreator filtrów automatycznie ocenia kombinacje filtrów, aby zmaksymalizować pewność i dokładność OCR. Przeprowadza wyczerpujące testy w celu uzyskania optymalnych ustawień i zwraca najlepszą kombinację filtrów w postaci fragmentu kodu, umożliwiając łatwe odtworzenie wyników. Ta funkcja płynnie integruje się z klasą OcrInput, upraszczając stosowanie filtrów do obrazów.
Ten przewodnik pokazuje, jak działa Kreator filtrów, oraz przedstawia fragmenty kodu i parametry, których używa. Aby dowiedzieć się więcej o optymalizacji procesu OCR, zapoznaj się z naszym przewodnikiem dotyczącym korekcji jakości obrazu.
Szybki start: Automatycznie znajdź idealny łańcuch filtrów obrazu
Skorzystaj z Kreatora filtrów IronOCR, aby przetestować wszystkie kombinacje filtrów przetwarzania wstępnego i uzyskać fragment kodu o najlepszej wydajności. W jednym wierszu podaj najwyższy wynik pewności oraz dokładny łańcuch filtrów C# dla podobnych obrazów.
-
Install IronOCR with NuGet Package Manager
PM > Install-Package IronOcr -
Skopiuj i uruchom ten fragment kodu.
string code = OcrInputFilterWizard.Run("image.png", out double confidence, new IronTesseract()); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę C#, aby skorzystać z kreatora filtrów
- Utwórz instancję silnika IronTesseract
- Załaduj obraz wejściowy do
OcrInputFilterWizard Uruchomkreatora filtrów i przejrzyj wyniki, takie jak poziom pewności- Wykorzystaj podany kod i zastosuj go do obrazu wejściowego, a następnie sprawdź wyniki
Jak działa Kreator filtrów?
Metoda OcrInputFilterWizard.Run przyjmuje trzy parametry: obraz wejsciowy, parametr wyjsciowy dla wynikowego poziomu pewnosci oraz instancje silnika Tesseract. Aby uzyskać informacje na temat zaawansowanego sterowania silnikiem, zapoznaj się z naszym przewodnikiem dotyczącym szczegółowej konfiguracji Tesseract.
Testuje wiele kombinacji filtrów przetwarzania wstępnego, aby uzyskać najlepszy wynik pewności. Najwyższy wynik zaufania określa, który zestaw filtrów należy zastosować do obrazu wejściowego. To podejście sprawdza się skutecznie w przypadku trudnych obrazów wymagających korekcji orientacji lub innych złożonych etapów przetwarzania wstępnego.
Kreator filtrów nie ma żadnych ustawień wstępnych ani ograniczeń dotyczących kombinacji. Skupia się na osiągnięciu jak najlepszego wyniku zaufania poprzez kompleksowe testy filtrów. Aby uzyskać informacje zwrotne w czasie rzeczywistym podczas przetwarzania, wdroż system śledzenia postępów w celu monitorowania działania kreatora.
Filtry dostępne w testowaniu kombinacji:
input.Contrast()- Dostosowuje kontrast dla wyrazistosci tekstuinput.Sharpen()- Zwieksza definicje krawedziinput.Binarize()- Konwertuje na czarno-bialyinput.ToGrayScale()- Usuwa informacje o kolorzeinput.Invert()- Odwraca koloryinput.Deskew()- Korekta przetraconego tekstuinput.Scale(...)- Zmieksza do optymalnych wymiarowinput.Denoise()- Usuwa szum pikselowyinput.DeepCleanBackgroundNoise()- Zaawansowane usuwanie szumowinput.EnhanceResolution()- Poprawia rozdzielczosc niskiej jakosciinput.Dilate(),input.Erode()- Operacje rafinacji tekstu
Szczegółowe informacje na temat filtrów można znaleźć w tym samouczku dotyczącym filtrów obrazu. Dodatkowe techniki przetwarzania wstępnego są dostępne w przewodniku po filtrach korekcji obrazu.
Ta wyczerpująca metoda testowania wymaga czasu przetwarzania. W przypadku operacji na dużą skalę należy skorzystać z obsługi wielowątkowości, aby przetwarzać wiele obrazów jednocześnie.
Jakiego rodzaju obrazu powinienem użyć do testowania?
W tym przykładzie wykorzystano zrzut ekranu z silnym sztucznym szumem, aby zademonstrować działanie kreatora filtrów. Kreator filtrów skutecznie obsługuje różne typy obrazów, od zeskanowanych dokumentów po zdjęcia z tekstem.
Przy wyborze obrazów testowych należy wziąć pod uwagę następujące czynniki:
- Rozdzielczość obrazu: Obrazy o wyższej rozdzielczości (DPI) zazwyczaj dają lepsze wyniki. Zapoznaj się z naszym przewodnikiem dotyczącym ustawień DPI, aby uzyskać wskazówki dotyczące optymalizacji.
- Typ dokumentu: Różne typy dokumentów wymagają określonych kombinacji filtrów. Dokumenty tożsamości mogą wymagać innego przetwarzania wstępnego niż standardowe dokumenty tekstowe.
- Jakość źródła: Kreator filtrów doskonale radzi sobie z problematycznymi obrazami, ale w miarę możliwości zaczyna od źródła o najwyższej dostępnej jakości.
Jak uruchomić kreatora filtrów w moim kodzie?
:path=/static-assets/ocr/content-code-examples/how-to/filter-wizard-process.cs
using IronOcr;
using System;
// Initialize the Tesseract engine
var ocr = new IronTesseract();
// 1. Pass the image path ("noise.png").
// 2. Pass an 'out' variable to store the best confidence score found.
// 3. Pass the tesseract instance to be used for testing.
string codeToRun = OcrInputFilterWizard.Run("noise.png", out double confidence, ocr);
// The 'confidence' variable is now populated with the highest score achieved.
Console.WriteLine($"Best Confidence Score: {confidence}");
// 'codeToRun' holds the exact C# code snippet that achieved this score.
// The returned string is the code you can use to filter similar images.
Console.WriteLine("Recommended Filter Code:");
Console.WriteLine(codeToRun);
Imports IronOcr
Imports System
' Initialize the Tesseract engine
Dim ocr As New IronTesseract()
' 1. Pass the image path ("noise.png").
' 2. Pass an 'out' variable to store the best confidence score found.
' 3. Pass the tesseract instance to be used for testing.
Dim confidence As Double
Dim codeToRun As String = OcrInputFilterWizard.Run("noise.png", confidence, ocr)
' The 'confidence' variable is now populated with the highest score achieved.
Console.WriteLine($"Best Confidence Score: {confidence}")
' 'codeToRun' holds the exact C# code snippet that achieved this score.
' The returned string is the code you can use to filter similar images.
Console.WriteLine("Recommended Filter Code:")
Console.WriteLine(codeToRun)
Kreator filtrów obsługuje różne formaty danych wejściowych. Informacje na temat obsługiwanych formatów można znaleźć w naszym przewodniku dotyczącym obrazów wejściowych. Można również przetwarzać pliki PDF lub pracować bezpośrednio ze strumieniami dla dynamicznych źródeł obrazów.
W przypadku scenariuszy przetwarzania wsadowego proszę rozważyć ten rozszerzony przykład:
/* :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}");
}
}
Imports IronOcr
Imports System
Imports System.IO
' Process multiple similar images
Dim ocr As New IronTesseract()
Dim imageFiles As String() = Directory.GetFiles("C:\Images", "*.png")
' Run Filter Wizard on first image to discover optimal settings
Dim baselineConfidence As Double
Dim optimalCode As String = OcrInputFilterWizard.Run(imageFiles(0), baselineConfidence, ocr)
Console.WriteLine($"Baseline confidence: {baselineConfidence:P2}")
Console.WriteLine("Optimal filter sequence discovered")
' Apply discovered filters to all images
For Each imagePath As String In imageFiles
Using input As New OcrImageInput(imagePath)
' Apply the filter sequence discovered by the wizard
' The actual filters would be applied here based on the wizard output
Dim result = ocr.Read(input)
Console.WriteLine($"Processed: {Path.GetFileName(imagePath)} - Confidence: {result.Confidence:P2}")
End Using
Next
Jakie wyniki zwróci Kreator filtrów?
Wynik kreatora filtrów wskazuje 65% pewności jako najlepszy możliwy wynik dla tego konkretnego obrazu. Wskaźniki pewności są kluczowymi miernikami służącymi do oceny dokładności OCR. Dowiedz się więcej o pewności wyników w naszym specjalnym przewodniku.
Obraz wejściowy zawiera znaczne zniekształcenia i sztuczny szum. Pokazuje to możliwości Kreatora filtrów w trudnych scenariuszach. W przypadku zastosowań produkcyjnych, w miarę możliwości należy korzystać z obrazów źródłowych o wyższej jakości.
Wygenerowany fragment kodu zawiera:
- Dokładna sekwencja filtrów: Kolejność operacji ma znaczenie dla uzyskania optymalnych wyników
- Łańcuchowanie metod: przejrzysty, czytelny kod, który jest łatwy do wdrożenia
- Nie trzeba zgadywać parametrów: każdy filtr jest skonfigurowany tak, aby zapewnić najlepszą wydajność
Jak zastosować zalecaną kombinację filtrów?
Po uruchomieniu kreatora filtrów zastosuj podane ustawienia fragmentu kodu do obrazu wejściowego, aby zweryfikować wyniki i poziom pewności. Zapewnia to powtarzalne wyniki dla podobnych obrazów w procesie przetwarzania dokumentów.
Jak wdrożyć zalecany kod?
: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}");
}
Imports IronOcr
Imports System
' Initialize the Tesseract engine
Dim ocrTesseract As New IronTesseract()
' Load the image into an OcrInput object
Using input As 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
Dim result As OcrResult = ocrTesseract.Read(input)
' Print the final result and confidence
Console.WriteLine($"Result: {result.Text}")
Console.WriteLine($"Confidence: {result.Confidence}")
End Using
Kolejność stosowania filtrów ma duże znaczenie. Kreator filtrów określa zarówno to, które filtry mają być użyte, jak i ich optymalną kolejność. Ta inteligentna sekwencja sprawia, że Kreator filtrów jest cennym narzędziem w złożonych scenariuszach przetwarzania wstępnego.
Aby uzyskać większą kontrolę nad procesem OCR, warto rozważyć wdrożenie obsługi błędów i walidacji:
/* :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}");
}
Imports IronOcr
Imports System
Dim ocrEngine As New IronTesseract()
Try
Using input As 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
Dim result = ocrEngine.Read(input)
' Validate results
If result.Confidence >= 0.6 Then
Console.WriteLine("OCR successful with high confidence")
' Process the extracted text
Else
Console.WriteLine("Low confidence result - consider manual review")
End If
End Using
Catch ex As Exception
Console.WriteLine($"OCR processing error: {ex.Message}")
End Try
Jakie są ostateczne wyniki OCR po zastosowaniu filtrów?
IronOCR wyodrębnia większość tekstu nawet w warunkach znacznego zniekształcenia. Poziom pewności odpowiada raportowi kreatora filtrów. Aby uzyskać szczegółowe informacje na temat obsługi wyników OCR, zapoznaj się z naszym przewodnikiem dotyczącym eksportu danych.
Jakie zaawansowane wskazówki dotyczące użytkowania należy wziąć pod uwagę?
Podczas korzystania z Kreatora filtrów w środowisku produkcyjnym należy uwzględnić następujące najlepsze praktyki:
-
Przetwarzanie wsadowe: Przeprowadź testy na reprezentatywnych próbkach, a następnie zastosuj łańcuch filtrów do podobnych obrazów.
-
Optymalizacja wydajności: Kreator filtrów jest dokładny, ale czasochłonny. Aby przyspieszyć działanie OCR, zapoznaj się z konfiguracją szybkiego OCR.
-
Obsługa języków niestandardowych: W przypadku tekstów nieanglojęzycznych należy rozważyć wiele języków w celu optymalizacji rozpoznawania.
-
Integracja API: Odwiedź naszą sekcję Dokumentacji API, aby uzyskać pełną dokumentację.
-
Optymalizacja pod kątem konkretnych dokumentów: Różne typy dokumentów wymagają specjalistycznego podejścia:
- W przypadku formularzy warto przeczytać tabele
- W przypadku treści mieszanych należy włączyć odczyt kodów BarCode
- W przypadku dokumentów wielostronicowych zapoznaj się z przetwarzaniem plików TIFF
-
Zarządzanie pamięcią: Prawidłowo usunąć obiekty
OcrInputużywając instrukcjiusing. - Odzyskiwanie po błędach: Wdrożenie strategii awaryjnych dla wyników o niskim poziomie pewności. W przypadku dokumentów o znaczeniu krytycznym warto rozważyć ręczną weryfikację.
Kreator filtrów zapewnia zaawansowane, zautomatyzowane wykrywanie przetwarzania wstępnego w celu uzyskania optymalnych wyników OCR. Dzięki automatycznemu wyszukiwaniu najlepszego procesu przetwarzania wstępnego dla konkretnych obrazów eliminuje ono zgadywanie podczas przygotowywania obrazów i zapewnia spójne, wysokiej jakości wyodrębnianie tekstu we wszystkich aplikacjach.
Często Zadawane Pytania
Czym jest OCR Filter Wizard i jak pomaga w przetwarzaniu wstępnym obrazu?
IronOCR Filter Wizard to zautomatyzowane narzędzie testujące wszystkie możliwe kombinacje filtrów przetwarzania wstępnego na Twoim obrazie, aby znaleźć optymalne ustawienia OCR. Eliminuje proces ręcznego próbowania i błędów, automatycznie oceniając różne kombinacje filtrów w celu maksymalizacji pewności i dokładności OCR, a następnie zwraca najlepszą kombinację filtrów jako gotowy do użycia fragment kodu C#.
Jak używać Filter Wizard w mojej aplikacji C#?
Używanie Filter Wizard IronOCR jest proste - wystarczy wywołać OcrInputFilterWizard.Run() z ścieżką do obrazu, parametrem wyjściowym dla poziomu pewności i instancją IronTesseract. Na przykład: `string code = OcrInputFilterWizard.Run("image.png", out double confidence, new IronTesseract());`
Jakie parametry przyjmuje metoda OcrInputFilterWizard.Run?
Metoda OcrInputFilterWizard.Run w IronOCR przyjmuje trzy parametry: obraz wejściowy (jako ścieżka pliku), parametr wyjściowy zwracający poziom pewności oraz instancję silnika IronTesseract do przetwarzania.
Dlaczego powinienem używać Filter Wizard zamiast ręcznie testować filtry?
Ręczne testowanie filtrów przetwarzania wstępnego jest czasochłonne i trudne, zwłaszcza przy skanach niskiej jakości lub obrazach o zróżnicowanym poziomie szumów. Filter Wizard IronOCR automatyzuje ten proces, wyczerpująco testując kombinacje filtrów i zwracając najwyższy wynik pewności wraz z potrzebnym dokładnym kodem C#, oszczędzając przy tym znacznie czas na rozwój.
Jak Filter Wizard określa najlepszą kombinację filtrów?
Filter Wizard IronOCR testuje wiele kombinacji filtrów przetwarzania wstępnego na Twoim obrazie i mierzy wynikowy wskaźnik pewności OCR dla każdej kombinacji. Następnie wybiera zestaw filtrów, który osiąga najwyższy wynik pewności i zwraca tę optymalną kombinację jako wykonalny kod C#.
Czy Filter Wizard może działać z obrazami niskiej jakości lub zawierającymi szumy?
Tak, Filter Wizard IronOCR jest szczególnie skuteczny przy obrazach problematycznych, w tym skanach niskiej jakości i obrazach o zróżnicowanym poziomie szumu i zniekształceń. Automatycznie znajduje optymalną kombinację przetwarzania wstępnego, aby zmaksymalizować dokładność OCR nawet przy trudnym materiale źródłowym.

