# Filtry korekcji obrazu C# do polepszenia odczytu OCR
IronOCR dostarcza pięciu podstawowych filtrów korekcji obrazu (`sharpen`, `enhance resolution`, `denoise`, `dilate` i `erode`), które wstępnie przetwarzają obrazy, aby znacznie poprawić dokładność OCR poprzez zwiększenie czytelności tekstu i redukcję szumów przed ekstrakcją tekstu.
*as-heading:2(Szybki start: Zastosuj filtr wyostrzania dla wyraźnego tekstu)*
Użyj `OcrImageInput` IronOCR, aby wyostrzyć rozmazany obraz za pomocą pojedynczej linii kodu. Ten przykład demonstruje poprawę obrazu dla dokładnego OCR.
```cs
:title=Fix Blurry Text Instantly
new IronOcr.OcrImageInput("sample.png").Sharpen().SaveAsImages("output.png");
```
<div class="hsg-featured-snippet">
<h3>Minimalny proces (5 kroków)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronOcr/">Pobierz bibliotekę C# do korekcji obrazów przy użyciu filtrów</a></li>
<li>Zaimportuj dokument PDF i obrazy do odczytu</li>
<li>Zastosuj pożądane filtry, takie jak wyostrzanie, poprawa rozdzielczości, redukcja szumów, dylatacja i erozja</li>
<li>Eksportuj poprawiony obraz do przeglądu</li>
<li>Użyj metody <code>Read</code> do przetwarzania OCR</li>
</ol>
</div>
<br class="clear" />
## Jak zastosować filtr wyostrzania?
Ten filtr zwiększa kontrast wzdłuż krawędzi na obrazie, tworząc bardziej zdefiniowane granice tekstu. Poprawia to czytelność tekstu, czyniąc rozpoznawanie znaków bardziej dokładnym.
### Dlaczego wyostrzanie poprawia dokładność OCR?
Filtr wyostrzania podkreśla granice pomiędzy tekstem a tłem poprzez zwiększenie kontrastu krawędzi. Algorytmy rozpoznawania znaków potrzebują wyraźnych, oddzielnych kształtów liter, aby działać poprawnie. Rozmyty tekst z miękkimi krawędziami - częsty w zeskanowanych dokumentach lub zdjęciach niskiej jakości - powoduje, że silniki OCR błędnie identyfikują granice znaków. Aby uzyskać więcej informacji o optymalnym przetwarzaniu obrazów dla OCR, zobacz nasz wyczerpujący przewodnik na temat [Filtry optymalizacji obrazów OCR](https://ironsoftware.com/csharp/ocr/examples/ocr-image-filters-for-net-tesseract/).
Aby zastosować filtr wyostrzający, wywołaj metodę `Sharpen` obiektu `OcrImageInput`:
```csharp
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");
```
### Kiedy powinienem używać filtru wyostrzania?
Użyj wyostrzania dla lekko nieostrych obrazów, zeskanowanych dokumentów z miękkimi krawędziami tekstu lub zdjęć wykonanych w słabym oświetleniu. Unikaj nadmiernego wyostrzania wyraźnego tekstu, co wprowadza artefakty i zmniejsza dokładność. Dla bardzo rozmytych skanów połącz wyostrzanie z innymi filtrami lub zobacz nasz przewodnik na temat [Napraw niskiej jakości skany i obrazy](https://ironsoftware.com/csharp/ocr/examples/ocr-low-quality-scans-tesseract/).
Eksportuj przefiltrowane obrazy za pomocą metody `SaveAsImages`. Poniżej znajduje się porównanie przed i po.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-quality-correction/sample.jpg" alt="Blurred text sample showing business article content before applying sharpen filter" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Przed</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-quality-correction/sharpen_0.webp" alt="Próbka tekstu po zastosowaniu filtra wyostrzania przedstawiająca lepszą definicję krawędzi i wyrazistość znaków" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Po</p>
</div>
</div>
<hr />
## Jak polepszyć rozdzielczość dla lepszego OCR?
Ten filtr zwiększa gęstość pikseli, poprawiając ostrość i klarowność. Pomaga to silnikom OCR dokładniej odczytywać tekst w obrazach o niskiej rozdzielczości.
### Jaki DPI powinienem celować dla OCR?
Silniki OCR najlepiej działają przy 300 DPI (punktów na cal). Niższe rozdzielczości powodują błędne rozpoznanie znaków; wyższe rozdzielczości spowalniają przetwarzanie bez poprawy dokładności. Filtr poprawy IronOCR inteligentnie powiększa obrazy do optymalnych poziomów DPI. Dla szczegółowych wskazówek zobacz nasz przewodnik [Ustawienia DPI](https://ironsoftware.com/csharp/ocr/how-to/dpi-setting/).
Aby zastosować ten filtr, wywołaj metodę `EnhanceResolution`. Domyślnym celem jest 225 DPI:
```csharp
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}");
```
### Kiedy zwiększenie rozdzielczości ma największe znaczenie?
Poprawa rozdzielczości ma kluczowe znaczenie dla:
- Zrzuty ekranu wykonane w rozdzielczości ekranu (72-96 DPI)
- Obrazy internetowe pobrane z sieci
- Dokumenty historyczne zeskanowane w niskiej rozdzielczości
- Transmisje faksowe z niską rozdzielczością z natury
Przykład [OCR Tesseract Image DPI](https://ironsoftware.com/csharp/ocr/examples/ocr-image-dpi-for-tesseract/) dostarcza informacji o tym, jak DPI wpływa na dokładność w różnych typach dokumentów.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-quality-correction/sample.jpg" alt="Low-resolution text sample showing blurry, pixelated business article requiring OCR enhancement" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Przed</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-quality-correction/enhanceResolution_0.webp" alt="Tekst o zwiększonej rozdzielczości przedstawiający wyraźniejsze znaki po poprawie DPI w celu lepszej dokładności OCR" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Po</p>
</div>
</div>
<hr />
## Jak usunąć szumy z obrazów?
Filtry redukcji szumów zmniejszają niepożądane artefakty na obrazach. Redukcja szumów izoluje tekst od interferencji tła, zapewniając czystsze i bardziej dokładne wyniki OCR.
### Jaka jest różnica między morfologią 2x2 a 3x3?
Rozmiar morfologii określa siłę redukcji szumów. Morfologia 2x2 stosuje łagodną redukcję szumów dla minimalnych artefaktów, zachowując delikatny tekst. Morfologia 3x3 zapewnia agresywną redukcję szumów dla mocno zniszczonych dokumentów, ale może wpłynąć na bardzo mały tekst.
Aby zastosować filtr odszumiania, użyj metody `DeNoise`. Domyślną morfologią jest 2x2. Przekaż 'true' dla morfologii 3x3:
```csharp
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}%");
}
```
### Jak rozpoznać, czy mój obraz wymaga redukcji szumów?
Szukaj następujących wskaźników szumu:
- Losowe plamki lub kropki na tle
- Szum solno-pieprzowy spowodowany złym skanowaniem
- Ziarnistość z fotografii o wysokim ISO
- Tekstura tła z papieru pochodzącego z recyklingu
Do automatycznego wykrywania szumów zapoznaj się z naszym [Kreatorem Filtru](https://ironsoftware.com/csharp/ocr/examples/filter-wizard/).
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-quality-correction/sample.jpg" alt="Zaszumiony zeskanowany dokument z plamkami i artefaktami pogarszającymi jakość tekstu o japońskich menedżerach z branży technologicznej" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Przed</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-quality-correction/denoise_0.webp" alt="Czysty dokument po tym, jak filtr odszumiania usuwa plamki tła i poprawia czytelność tekstu" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Po</p>
</div>
</div>
<hr />
## Jak używać filtru dylatacji?
Dylatacja powiększa jasne obszary na obrazach. Pogrubia tekst, czyniąc go bardziej wyraźnym i łatwiejszym do interpretacji przez oprogramowanie OCR.
### Kiedy należy stosować dylatację do tekstu?
Dylatacja najlepiej działa z cienkimi lub złamanymi znakami tekstowymi znalezionymi w:
- Dokumenty z maszyn do pisania o nierównomiernym tuszu
- Wyblakłe rachunki i wydruki z papieru termicznego
- Dokumenty z czcionkami o wąskich kreskach
- Tekst o zbyt skompresowanym formacie obrazu
Dylatacja wypełnia małe przerwy wewnątrz znaków i wzmacnia słabe połączenia kreski. To zapobiega błędnej interpretacji złamanych znaków jako wielu symboli przez silniki OCR.
Aby zastosować filtr dylacji, użyj metody `Dilate`. Domyślną morfologią jest 2x2; przekaż 'true' dla morfologii 3x3:
```csharp
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);
```
### Jakie są typowe problemy związane z nadmiernym rozszerzeniem?
Nadmierne rozbudowywanie tekstu może spowodować:
- Zlewanie znaków, w którym sąsiednie litery łączą się
- Utrata szczegółów wewnętrznych (dziury w literze "e" lub cyfrze "8")
- Niższa dokładność w przypadku tekstu pogrubionego
Monitoruj wyniki i dostosowuj je odpowiednio. W przypadku dokumentów o zróżnicowanej gramaturze tekstu należy selektywnie stosować nasze filtry korekcji jakości obrazu.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-quality-correction/sample.jpg" alt="Dokument z cienkimi liniami tekstu, który skorzystałby z filtrowania dylatacją dla OCR" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Przed</p>
</div>
<div class="competitors__card" style="width: 50%;">
<img src="/static-assets/ocr/how-to/image-quality-correction/dilate_0.webp" alt="Tekst po zastosowaniu filtra dylatacji przedstawiający pogrubione linie znaków i poprawioną czytelność" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Po</p>
</div>
</div>
<hr />
## Jak zastosować filtr Erode?
Erozja zmniejsza rozmiary jasnych obszarów na obrazach, wygładzając grube lub zniekształcone znaki oraz poprawiając ich rozdzielczość.
### Dlaczego Erosion pomaga w przypadku obszernych tekstów?
Erozja powoduje przerzedzenie kresek tekstu i rozdzielenie stykających się znaków. Ten filtr wyróżnia się:
- Dokumenty drukowane z nadmiernym nakładem farby
- Kserokopie z rozmyciem znaków
- Pogrubiony tekst, który pojawia się po połączeniu
- Niska jakość transmisji faksowych
Ostrożne wygładzenie przywraca odstępy między znakami i poprawia rozpoznawalność poszczególnych liter, zapobiegając błędnemu odczytaniu całych słów.
Użyj metody `Erode`, aby zastosować ten filtr. Domyślną morfologią jest 2x2; przekaż 'true' dla morfologii 3x3:
```csharp
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);
```
### Jak zachować równowagę między zwięzłością a czytelnością tekstu?
Znalezienie odpowiedniego poziomu erozji wymaga starannego testowania:
- Zacznij od domyślnej morfologii 2x2
- Przetestuj na reprezentatywnych przykładach dokumentów
- Sprawdź, czy znaki interpunkcyjne pozostają widoczne
- Upewnij się, że cienkie czcionki nie ulegają zniekształceniu
W przypadku dokumentów o zróżnicowanej gęstości tekstu zapoznaj się z naszymi [zaawansowanymi opcjami konfiguracyjnymi](https://ironsoftware.com/csharp/ocr/examples/csharp-configure-setup-tesseract/).
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/ocr/how-to/image-quality-correction/sample.jpg" alt="Dokument ze scalonymi/grubymi znakami, który skorzystałby z przetwarzania filtrem erozji" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Przed</p>
</div>
<div class="competitors__card" style="width: 50%;">
<img src="/static-assets/ocr/how-to/image-quality-correction/erode_0.webp" alt="Tekst po zastosowaniu filtra erozji przedstawiający rozdzielone znaki i zmniejszoną grubość linii" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Po</p>
</div>
</div>
## Jak zapisać przefiltrowane obrazy jako pliki PDF z możliwością wyszukiwania?
IronOCR pozwala zapisywać zmodyfikowane pliki PDF z zastosowanymi filtrami lub w ich oryginalnym stanie. Drugi parametr metody `SaveAsSearchablePdf` określa, czy zapisać z filtrami.
### Jakie są korzyści z zachowania zmian filtrów?
Zachowanie zmian filtrów oferuje kilka korzyści:
- Tworzy bardziej przejrzyste i czytelne dokumenty
- Zachowuje spójność w różnych partiach dokumentów
- Zapewnia wizualne potwierdzenie poprawy jakości tekstu
- Umożliwia porównania w ramach kontroli jakości
Tworzenie plików PDF z możliwością wyszukiwania polega na osadzeniu warstwy tekstowej OCR przy zachowaniu wyglądu wizualnego. Więcej informacji znajdziesz w naszym przewodniku dotyczącym [tworzenia plików PDF z możliwością wyszukiwania](https://ironsoftware.com/csharp/ocr/how-to/searchable-pdf/).
```csharp
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");
```
### Jak wybrać między plikami PDF z filtrowaną treścią a oryginalnymi?
**Zapisz z filtrami (true), gdy:**
- Jakość oryginalnego dokumentu jest niska
- Konieczna jest spójność wyglądu w różnych dokumentach
- Wersja z filtrowaniem znacznie poprawia czytelność
- Archiwizacja dokumentów do długoterminowego przechowywania
**Zapisz bez filtrów (false), gdy:**
- Zachowanie oryginalnego wyglądu jest wymagane prawnie
- Informacje o kolorach są ważne
- Należy zachować autentyczność dokumentu
- Filtry są potrzebne wyłącznie w celu zapewnienia dokładności OCR
Aby zapoznać się z zaawansowanymi opcjami przetwarzania plików PDF, zapoznaj się z naszym [przewodnikiem dotyczącym ekstrakcji tekstu z plików PDF za pomocą OCR](https://ironsoftware.com/csharp/ocr/examples/csharp-pdf-ocr/). Aby uzyskać optymalne kombinacje filtrów, zapoznaj się z [samouczkiem Kreatora filtrów](https://ironsoftware.com/csharp/ocr/how-to/filter-wizard/).
IronOCR dostarcza pięciu podstawowych filtrów korekcji obrazu (sharpen, enhance resolution, denoise, dilate i erode), które wstępnie przetwarzają obrazy, aby znacznie poprawić dokładność OCR poprzez zwiększenie czytelności tekstu i redukcję szumów przed ekstrakcją tekstu.
Szybki start: Zastosuj filtr wyostrzania dla wyraźnego tekstu
Użyj OcrImageInput IronOCR, aby wyostrzyć rozmazany obraz za pomocą pojedynczej linii kodu. Ten przykład demonstruje poprawę obrazu dla dokładnego OCR.
Zastosuj pożądane filtry, takie jak wyostrzanie, poprawa rozdzielczości, redukcja szumów, dylatacja i erozja
Eksportuj poprawiony obraz do przeglądu
Użyj metody Read do przetwarzania OCR
Jak zastosować filtr wyostrzania?
Ten filtr zwiększa kontrast wzdłuż krawędzi na obrazie, tworząc bardziej zdefiniowane granice tekstu. Poprawia to czytelność tekstu, czyniąc rozpoznawanie znaków bardziej dokładnym.
Dlaczego wyostrzanie poprawia dokładność OCR?
Filtr wyostrzania podkreśla granice pomiędzy tekstem a tłem poprzez zwiększenie kontrastu krawędzi. Algorytmy rozpoznawania znaków potrzebują wyraźnych, oddzielnych kształtów liter, aby działać poprawnie. Rozmyty tekst z miękkimi krawędziami - częsty w zeskanowanych dokumentach lub zdjęciach niskiej jakości - powoduje, że silniki OCR błędnie identyfikują granice znaków. Aby uzyskać więcej informacji o optymalnym przetwarzaniu obrazów dla OCR, zobacz nasz wyczerpujący przewodnik na temat Filtry optymalizacji obrazów OCR.
Aby zastosować filtr wyostrzający, wywołaj metodę Sharpen obiektu OcrImageInput:
using IronOcr;// Instantiate IronTesseractIronTesseract ocrTesseract = new IronTesseract();// Add imageusing var imageInput = new OcrImageInput("sample.jpg");// Apply sharpen filterimageInput.Sharpen();// Export filtered imageimageInput.SaveAsImages("sharpen.jpg");
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");
ImportsIronOcr' Instantiate IronTesseractPrivate ocrTesseract As New IronTesseract()' Add imagePrivate imageInput = New OcrImageInput("sample.jpg")' Apply sharpen filterimageInput.Sharpen()' Export filtered imageimageInput.SaveAsImages("sharpen.jpg")
Imports IronOcr
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Add image
Private imageInput = New OcrImageInput("sample.jpg")
' Apply sharpen filter
imageInput.Sharpen()
' Export filtered image
imageInput.SaveAsImages("sharpen.jpg")
Kiedy powinienem używać filtru wyostrzania?
Użyj wyostrzania dla lekko nieostrych obrazów, zeskanowanych dokumentów z miękkimi krawędziami tekstu lub zdjęć wykonanych w słabym oświetleniu. Unikaj nadmiernego wyostrzania wyraźnego tekstu, co wprowadza artefakty i zmniejsza dokładność. Dla bardzo rozmytych skanów połącz wyostrzanie z innymi filtrami lub zobacz nasz przewodnik na temat Napraw niskiej jakości skany i obrazy.
Eksportuj przefiltrowane obrazy za pomocą metody SaveAsImages. Poniżej znajduje się porównanie przed i po.
Przed
Po
Jak polepszyć rozdzielczość dla lepszego OCR?
Ten filtr zwiększa gęstość pikseli, poprawiając ostrość i klarowność. Pomaga to silnikom OCR dokładniej odczytywać tekst w obrazach o niskiej rozdzielczości.
Jaki DPI powinienem celować dla OCR?
Silniki OCR najlepiej działają przy 300 DPI (punktów na cal). Niższe rozdzielczości powodują błędne rozpoznanie znaków; wyższe rozdzielczości spowalniają przetwarzanie bez poprawy dokładności. Filtr poprawy IronOCR inteligentnie powiększa obrazy do optymalnych poziomów DPI. Dla szczegółowych wskazówek zobacz nasz przewodnik Ustawienia DPI.
Aby zastosować ten filtr, wywołaj metodę EnhanceResolution. Domyślnym celem jest 225 DPI:
using IronOcr;// Create OCR inputvar imageInput = new OcrImageInput("low-res-scan.jpg");// Apply enhance resolution filter with default 225 DPIimageInput.EnhanceResolution();// Or specify a custom DPIimageInput.EnhanceResolution(300);// Combine with OCR readingvar 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}");
ImportsIronOcr' Create OCR inputDim imageInput As New OcrImageInput("low-res-scan.jpg")' Apply enhance resolution filter with default 225 DPIimageInput.EnhanceResolution()' Or specify a custom DPIimageInput.EnhanceResolution(300)' Combine with OCR readingDim ocr As New IronTesseract()Dim result = ocr.Read(imageInput)Console.WriteLine($"Extracted text: {result.Text}")
Imports IronOcr
' Create OCR input
Dim imageInput As 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
Dim ocr As New IronTesseract()
Dim result = ocr.Read(imageInput)
Console.WriteLine($"Extracted text: {result.Text}")
Kiedy zwiększenie rozdzielczości ma największe znaczenie?
Poprawa rozdzielczości ma kluczowe znaczenie dla:
Zrzuty ekranu wykonane w rozdzielczości ekranu (72-96 DPI)
Obrazy internetowe pobrane z sieci
Dokumenty historyczne zeskanowane w niskiej rozdzielczości
Transmisje faksowe z niską rozdzielczością z natury
Przykład OCR Tesseract Image DPI dostarcza informacji o tym, jak DPI wpływa na dokładność w różnych typach dokumentów.
Przed
Po
Jak usunąć szumy z obrazów?
Filtry redukcji szumów zmniejszają niepożądane artefakty na obrazach. Redukcja szumów izoluje tekst od interferencji tła, zapewniając czystsze i bardziej dokładne wyniki OCR.
Jaka jest różnica między morfologią 2x2 a 3x3?
Rozmiar morfologii określa siłę redukcji szumów. Morfologia 2x2 stosuje łagodną redukcję szumów dla minimalnych artefaktów, zachowując delikatny tekst. Morfologia 3x3 zapewnia agresywną redukcję szumów dla mocno zniszczonych dokumentów, ale może wpłynąć na bardzo mały tekst.
Aby zastosować filtr odszumiania, użyj metody DeNoise. Domyślną morfologią jest 2x2. Przekaż 'true' dla morfologii 3x3:
using IronOcr;// Load noisy documentvar imageInput = new OcrImageInput("noisy-scan.pdf");// Apply denoise filter with default 2x2 morphologyimageInput.DeNoise();// Apply stronger denoising with 3x3 morphologyimageInput.DeNoise(true);// Combine with other filters for severely degraded imagesimageInput.DeNoise() .Sharpen() .EnhanceResolution(300);// Process with OCRvar ocr = new IronTesseract();var result = ocr.Read(imageInput);// Check confidence levelsforeach (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}%");
}
ImportsIronOcr' Load noisy documentDim imageInput As New OcrImageInput("noisy-scan.pdf")' Apply denoise filter with default 2x2 morphologyimageInput.DeNoise()' Apply stronger denoising with 3x3 morphologyimageInput.DeNoise(True)' Combine with other filters for severely degraded imagesimageInput.DeNoise() _ .Sharpen() _ .EnhanceResolution(300)' Process with OCRDim ocr As New IronTesseract()Dim result = ocr.Read(imageInput)' Check confidence levelsFor Each page In result.PagesConsole.WriteLine($"Page confidence: {page.Confidence}%")Next
Imports IronOcr
' Load noisy document
Dim imageInput As 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
Dim ocr As New IronTesseract()
Dim result = ocr.Read(imageInput)
' Check confidence levels
For Each page In result.Pages
Console.WriteLine($"Page confidence: {page.Confidence}%")
Next
Jak rozpoznać, czy mój obraz wymaga redukcji szumów?
Szukaj następujących wskaźników szumu:
Losowe plamki lub kropki na tle
Szum solno-pieprzowy spowodowany złym skanowaniem
Ziarnistość z fotografii o wysokim ISO
Tekstura tła z papieru pochodzącego z recyklingu
Do automatycznego wykrywania szumów zapoznaj się z naszym Kreatorem Filtru.
Przed
Po
Jak używać filtru dylatacji?
Dylatacja powiększa jasne obszary na obrazach. Pogrubia tekst, czyniąc go bardziej wyraźnym i łatwiejszym do interpretacji przez oprogramowanie OCR.
Kiedy należy stosować dylatację do tekstu?
Dylatacja najlepiej działa z cienkimi lub złamanymi znakami tekstowymi znalezionymi w:
Dokumenty z maszyn do pisania o nierównomiernym tuszu
Wyblakłe rachunki i wydruki z papieru termicznego
Dokumenty z czcionkami o wąskich kreskach
Tekst o zbyt skompresowanym formacie obrazu
Dylatacja wypełnia małe przerwy wewnątrz znaków i wzmacnia słabe połączenia kreski. To zapobiega błędnej interpretacji złamanych znaków jako wielu symboli przez silniki OCR.
Aby zastosować filtr dylacji, użyj metody Dilate. Domyślną morfologią jest 2x2; przekaż 'true' dla morfologii 3x3:
using IronOcr;// Create OCR enginevar ocrTesseract = new IronTesseract();// Apply dilate filtervar imageInput = new OcrImageInput("thin-text.jpg");imageInput.Dilate();// For more aggressive dilationimageInput.Dilate(true);// Practical example for faded receipt processingvar receiptInput = new OcrImageInput("faded-receipt.jpg");receiptInput.Dilate() .DeNoise() .EnhanceResolution(300);// Configure for better receipt readingocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;ocrTesseract.Configuration.ReadBarCodes = true;// Perform OCRvar 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);
ImportsIronOcr' Create OCR engineDim ocrTesseract As New IronTesseract()' Apply dilate filterDim imageInput As New OcrImageInput("thin-text.jpg")imageInput.Dilate()' For more aggressive dilationimageInput.Dilate(True)' Practical example for faded receipt processingDim receiptInput As New OcrImageInput("faded-receipt.jpg")receiptInput.Dilate() _ .DeNoise() _ .EnhanceResolution(300)' Configure for better receipt readingocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlockocrTesseract.Configuration.ReadBarCodes = True' Perform OCRDim result = ocrTesseract.Read(receiptInput)
Imports IronOcr
' Create OCR engine
Dim ocrTesseract As New IronTesseract()
' Apply dilate filter
Dim imageInput As New OcrImageInput("thin-text.jpg")
imageInput.Dilate()
' For more aggressive dilation
imageInput.Dilate(True)
' Practical example for faded receipt processing
Dim receiptInput As 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
Dim result = ocrTesseract.Read(receiptInput)
Jakie są typowe problemy związane z nadmiernym rozszerzeniem?
Nadmierne rozbudowywanie tekstu może spowodować:
Zlewanie znaków, w którym sąsiednie litery łączą się
Utrata szczegółów wewnętrznych (dziury w literze "e" lub cyfrze "8")
Niższa dokładność w przypadku tekstu pogrubionego
Monitoruj wyniki i dostosowuj je odpowiednio. W przypadku dokumentów o zróżnicowanej gramaturze tekstu należy selektywnie stosować nasze filtry korekcji jakości obrazu.
Przed
Po
Jak zastosować filtr Erode?
Erozja zmniejsza rozmiary jasnych obszarów na obrazach, wygładzając grube lub zniekształcone znaki oraz poprawiając ich rozdzielczość.
Dlaczego Erosion pomaga w przypadku obszernych tekstów?
Erozja powoduje przerzedzenie kresek tekstu i rozdzielenie stykających się znaków. Ten filtr wyróżnia się:
Dokumenty drukowane z nadmiernym nakładem farby
Kserokopie z rozmyciem znaków
Pogrubiony tekst, który pojawia się po połączeniu
Niska jakość transmisji faksowych
Ostrożne wygładzenie przywraca odstępy między znakami i poprawia rozpoznawalność poszczególnych liter, zapobiegając błędnemu odczytaniu całych słów.
Użyj metody Erode, aby zastosować ten filtr. Domyślną morfologią jest 2x2; przekaż 'true' dla morfologii 3x3:
using IronOcr;// Create OCR instancevar ocrTesseract = new IronTesseract();// Load image with thick textvar imageInput = new OcrImageInput("thick-text.jpg");// Apply erode filterimageInput.Erode();// Stronger erosion for heavily bleeding textimageInput.Erode(true);// Example: Processing a poor-quality photocopyvar photocopyInput = new OcrImageInput("thick-text-photocopy.pdf");// Apply erosion followed by sharpening for best resultsphotocopyInput.Erode() .Sharpen() .EnhanceResolution(300);// Configure OCR for better accuracyocrTesseract.Configuration.BlackListCharacters = "~`@#$%^&*()_+-={}[]|\\:\";<>?,./";ocrTesseract.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ";var ocrResult = ocrTesseract.Read(photocopyInput);// Extract with confidence checkvar 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);
ImportsIronOcr' Create OCR instanceDim ocrTesseract As New IronTesseract()' Load image with thick textDim imageInput As New OcrImageInput("thick-text.jpg")' Apply erode filterimageInput.Erode()' Stronger erosion for heavily bleeding textimageInput.Erode(True)' Example: Processing a poor-quality photocopyDim photocopyInput As New OcrImageInput("thick-text-photocopy.pdf")' Apply erosion followed by sharpening for best resultsphotocopyInput.Erode() _ .Sharpen() _ .EnhanceResolution(300)' Configure OCR for better accuracyocrTesseract.Configuration.BlackListCharacters = "~`@#$%^&*()_+-={}[]|\:"";<>?,./"ocrTesseract.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 "Dim ocrResult = ocrTesseract.Read(photocopyInput)' Extract with confidence checkDim highConfidenceText = ocrResult.Blocks _ .Where(Function(b) b.Confidence > 90) _ .Select(Function(b) b.Text)
Imports IronOcr
' Create OCR instance
Dim ocrTesseract As New IronTesseract()
' Load image with thick text
Dim imageInput As 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
Dim photocopyInput As 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 "
Dim ocrResult = ocrTesseract.Read(photocopyInput)
' Extract with confidence check
Dim highConfidenceText = ocrResult.Blocks _
.Where(Function(b) b.Confidence > 90) _
.Select(Function(b) b.Text)
Jak zachować równowagę między zwięzłością a czytelnością tekstu?
Znalezienie odpowiedniego poziomu erozji wymaga starannego testowania:
Zacznij od domyślnej morfologii 2x2
Przetestuj na reprezentatywnych przykładach dokumentów
Sprawdź, czy znaki interpunkcyjne pozostają widoczne
Upewnij się, że cienkie czcionki nie ulegają zniekształceniu
Jak zapisać przefiltrowane obrazy jako pliki PDF z możliwością wyszukiwania?
IronOCR pozwala zapisywać zmodyfikowane pliki PDF z zastosowanymi filtrami lub w ich oryginalnym stanie. Drugi parametr metody SaveAsSearchablePdf określa, czy zapisać z filtrami.
Jakie są korzyści z zachowania zmian filtrów?
Zachowanie zmian filtrów oferuje kilka korzyści:
Tworzy bardziej przejrzyste i czytelne dokumenty
Zachowuje spójność w różnych partiach dokumentów
Zapewnia wizualne potwierdzenie poprawy jakości tekstu
Umożliwia porównania w ramach kontroli jakości
Tworzenie plików PDF z możliwością wyszukiwania polega na osadzeniu warstwy tekstowej OCR przy zachowaniu wyglądu wizualnego. Więcej informacji znajdziesz w naszym przewodniku dotyczącym tworzenia plików PDF z możliwością wyszukiwania.
using IronOcr;var ocr = new IronTesseract();var ocrInput = new OcrInput();// Load a PDF fileocrInput.LoadPdf("invoice.pdf");// Apply multiple filters for comprehensive improvementocrInput.ToGrayScale() .DeNoise() .Sharpen() .EnhanceResolution(300);// Perform OCROcrResult result = ocr.Read(ocrInput);// Save the result as a searchable PDF with filters appliedresult.SaveAsSearchablePdf("outputFiltered.pdf", true);// Or save without filters to preserve original appearanceresult.SaveAsSearchablePdf("outputOriginal.pdf", false);// Export to other formatsresult.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");
ImportsIronOcrDim ocr As New IronTesseract()Dim ocrInput As New OcrInput()' Load a PDF fileocrInput.LoadPdf("invoice.pdf")' Apply multiple filters for comprehensive improvementocrInput.ToGrayScale() _ .DeNoise() _ .Sharpen() _ .EnhanceResolution(300)' Perform OCRDim result AsOcrResult = ocr.Read(ocrInput)' Save the result as a searchable PDF with filters appliedresult.SaveAsSearchablePdf("outputFiltered.pdf", True)' Or save without filters to preserve original appearanceresult.SaveAsSearchablePdf("outputOriginal.pdf", False)' Export to other formatsresult.SaveAsTextFile("extracted-text.txt")result.SaveAsHocrFile("output.html")
Imports IronOcr
Dim ocr As New IronTesseract()
Dim ocrInput As New OcrInput()
' Load a PDF file
ocrInput.LoadPdf("invoice.pdf")
' Apply multiple filters for comprehensive improvement
ocrInput.ToGrayScale() _
.DeNoise() _
.Sharpen() _
.EnhanceResolution(300)
' Perform OCR
Dim result As OcrResult = 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")
Jak wybrać między plikami PDF z filtrowaną treścią a oryginalnymi?
Zapisz z filtrami (true), gdy:
Jakość oryginalnego dokumentu jest niska
Konieczna jest spójność wyglądu w różnych dokumentach
Wersja z filtrowaniem znacznie poprawia czytelność
Archiwizacja dokumentów do długoterminowego przechowywania
Zapisz bez filtrów (false), gdy:
Zachowanie oryginalnego wyglądu jest wymagane prawnie
Informacje o kolorach są ważne
Należy zachować autentyczność dokumentu
Filtry są potrzebne wyłącznie w celu zapewnienia dokładności OCR
Jakie filtry obrazu moga poprawic dokladnosc OCR w C#?
IronOCR oferuje piec niezbednych filtrow korekcji obrazu: wyostrzenie, zwiekszenie rozdzielczosci, usuwanie szumow, dylacja i erozja. Filtry te wstepnie przetwarzaja obrazy, aby znaczniew zwiekszyc dokladnosc OCR poprzez poprawienie czystosci tekstu i redukcje szumow przed ekstrakcja tekstu.
Jak wyostrzyc rozmazany obraz, aby lepiej rozpoznawac tekst?
Można wyostrzyć rozmazany obraz za pomocą IronOCR's OcrImageInput jednym wierszem kodu: new IronOcr.OcrImageInput("sample.png").Sharpen(). Ten filtr zwiększa kontrast wzdłuż krawędzi obrazu, tworząc bardziej zdefiniowane granice tekstu dla lepszego rozpoznawania znaków.
Dlaczego wyostrzanie poprawia dokladnosc OCR?
Filtr wyostrzajacy w IronOCR podkresla granice miedzy tekstem a tlem, zwiekszajac kontrast krawedzi. Jest to kluczowe, poniewaz algorytmy rozpoznawania znakow wymagaja wyrazistych, odrebnych ksztaltow liter do prawidlowego dzialania. Rozmazany tekst z miekkiemi krawedziami powoduje, ze silniki OCR blednie identyfikuja granice znakow.
Kiedy powinienem uzyc filtra wyostrzajacego do OCR?
Uzyj filtra wyostrzajacego IronOCR dla delikatnie nieostrych obrazow, zeskanowanych dokumentow z miekkimi krawedziami tekstu lub zdjec zrobionych w slabych warunkach oswietleniowych. Unikaj nadmiernego wyostrzania wyrazistego tekstu, poniewaz wprowadza to artefakty i zmniejsza dokladnosc.
Jaka rozdzielczosc DPI powinna byc celem dla optymalnej wydajnosci OCR?
IronOCR dziala najlepiej z obrazami o rozdzielczosci 300 DPI (kropek na cal). Nizsze rozdzielczosci powodują błędne rozpoznawanie znaków, podczas gdy wyzsze rozdzielczosci spowalniaja przetwarzanie bez poprawy dokladnosci. Uzyj filtra zwiekszajacego rozdzielczosc, aby zwiekszyc gestosc pikseli w obrazach niskiej rozdzielczosci.
Czy mogę eksportować przefiltrowane obrazy po zastosowaniu korekt?
Tak, IronOCR pozwala eksportowac przefiltrowane obrazy za pomoca metody SaveAsImages. Umozliwia to porównanie obrazów przed i po ich korekcji oraz sprawdzenie ulepszen przed uruchomieniem OCR.
Jaki jest minimalny przeplyw pracy dla stosowania filtrow obrazu?
Minimalny przeplyw pracy z IronOCR obejmuje 5 krokow: pobranie biblioteki, importowanie PDF lub obrazow, zastosowanie poządanych filtrow (wyostrzenie, zwiekszanie rozdzielczosci, denoising, dylacja, erozja), eksport skorygowanego obrazu do przegladania i uzycie metody Read do przetwarzania OCR.
What parameters should I consider when choosing between filtered and original PDFs?
Choose filtered PDFs when you need consistent appearance, improved readability, or archiving. Opt for original PDFs when preserving original appearance is legally required, or when maintaining color information and document authenticity is important.
What are common signs that my image needs denoising?
Noise indicators include random speckles, salt-and-pepper noise, graininess from high ISO photography, and background texture that interferes with text clarity.
What typical DPI settings are recommended for optimal OCR results?
OCR engines perform best at 300 DPI. Lower resolutions may lead to character misrecognition, while higher resolutions might slow processing without enhancing accuracy. IronOCR's enhancement filter can upscale images to the optimal DPI level.
Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.