Jak naprawić kolory obrazu do odczytu w C
Napraw kolory obrazu w C# używając metod binarizacji, skali szarości, inwersji oraz zamiany kolorów IronOCR, aby poprawić czytelność tekstu i dokładność OCR. Odczytaj specyficzne kolory tekstu dla ukierunkowanej ekstrakcji.
Szybki start: Izoluj specjalne kolory tekstu
Użyj metody SelectTextColor IronOCR, aby skupić OCR na określonych kolorach tekstu bez potrzeby skomplikowanej manipulacji obrazem. Załaduj obraz, wybierz kolor tekstu i tolerancję, a następnie wyciągnij tylko ten tekst dla dokładnych wyników OCR.
-
Install IronOCR with NuGet Package Manager
PM > Install-Package IronOcr -
Skopiuj i uruchom ten fragment kodu.
new IronTesseract().Read(new IronOcr.OcrImageInput("sample.jpg").SelectTextColor(new IronSoftware.Drawing.Color("#DB645C"), 60)); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną
Jak naprawić kolory obrazu do odczytu w C#
- Pobierz bibliotekę C# do korekty kolorów obrazu
- Zaimportuj dokument PDF i obrazy do odczytu
- Zastosuj efekty kolorów: binarizację, skalę szarości, inwersję oraz zamianę kolorów
- Eksportuj poprawiony obraz do przeglądu
- Odczytaj specyficzne kolory tekstu używając
SelectTextColor
Jak zbinarizować obraz, aby poprawić OCR?
Binarizacja konwertuje obrazy do formatu dwukolorowego, zazwyczaj czarno-białego. Dzięki temu oddziela tekst od tła oraz redukuje szumy, co sprawia, że tekst jest bardziej wyrazisty i łatwiejszy do odczytu.
Dlaczego binarizacja poprawia dokładność OCR?
Zastosuj binaryzację używając metody Binarize. OCR działa najlepiej z obrazami o wysokim kontraście, które mają czarny tekst na białym tle. Ta metoda tworzy wyraźne rozgraniczenie między tłem a znakami.
Binarizacja doskonale sprawdza się w przypadku skanowanych dokumentów mających nierówne oświetlenie lub szumy tła. Algorytm analizuje obrazy i określa optymalne progi dla oddzielenia tekstu na pierwszym planie od tła. Dla zaawansowanych technik przetwarzania wstępnego zobacz Przewodnik Optymalizacji Obrazów OCR.
Jaka jest implementacja kodu dla binarizacji?
:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-binarize-image.cs
using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Apply binarize affect
imageInput.Binarize();
// Export the modified image
imageInput.SaveAsImages("binarize.jpg");
Imports IronOcr
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Add image
Private imageInput = New OcrImageInput("sample.jpg")
' Apply binarize affect
imageInput.Binarize()
' Export the modified image
imageInput.SaveAsImages("binarize.jpg")
Do przetwarzania zbiorczego, połącz binarizację z innymi filtrami. Użyj Kreatora Filtrów, aby określić najlepszą kombinację filtrów dla swoich obrazów.
Jak mogę eksportować i porównać wyniki?
Eksportuj zmodyfikowane obrazy używając metody SaveAsImages. Porównaj obrazy przed i po binarizacji poniżej.
Przed
Po
Jak konwertować obrazy na skalę szarości dla lepszego czytania?
Konwertowanie obrazów na skalę szarości redukuje wizualny chaos i poprawia czytelność. To pomaga, gdy oryginalne kolory odrywają uwagę od treści.
Kiedy powinienem użyć skali szarości zamiast innych metod?
Zastosuj skalę szarości używając metody ToGrayScale. Proces uśrednia wartości R, G i B.
Skala szarości dobrze działa z kolorowymi tłami lub znakami wodnymi, które zakłócają rozpoznawanie tekstu. W przeciwieństwie do binarizacji, skala szarości zachowuje detale w obrazach z subtelnymi wariantami. Użyj jej do fotografii z osadzonym tekstem lub złożonych układów. Dla skanów niskiej jakości zobacz Poprawa Skanów i Obrazów Niskiej Jakości.
Jaki jest prosty kod dla konwersji na skalę szarości?
:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-grayscale-image.cs
// Apply grayscale affect
imageInput.ToGrayScale();
' Apply grayscale affect
imageInput.ToGrayScale()
Dla zróżnicowanej jakości obrazów, połącz skalę szarości z innymi krokami przetwarzania wstępnego. Dokumentacja Klasa OcrInput wyjaśnia łączenie wielu filtrów.
Jak skala szarości wypada w porównaniu z oryginałem?
Przed
Po
Kiedy powinienem odwracać kolory obrazu?
Odwracanie kolorów poprawia kontrast. Konwersja białego tekstu na czarnym tle na czarny tekst na białym tle poprawia czytelność.
Jak wdrożyć inwersję kolorów?
Użyj metody Invert, aby odwrócić kolory. Przekaż wartość boolean, aby usunąć kanały kolorów i zwrócić obraz w prostych odcieniach szarości.
Inwersja kolorów radzi sobie z negatywami obrazami lub zrzutami ekranu z ciemnymi motywami. Współczesne aplikacje używają interfejsów trybu ciemnego, co stanowi wyzwanie dla tradycyjnego OCR. Odwracanie tych obrazów zapewnia optymalne rozpoznawanie. Dla różnych typów obrazów zobacz Przewodnik Konfiguracji Szybkiego OCR.
:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-invert-image.cs
// Apply invert affect
imageInput.Invert();
' Apply invert affect
imageInput.Invert()
Dla przetwarzania zbiorczego z mieszanymi rodzajami dokumentów, wdroż automatyczne wykrywanie ciemnego tła. Funkcje Wizji Komputerowej w IronOCR rozpoznają, kiedy potrzebna jest inwersja.
Jaka jest różnica pomiędzy opcjami inwersji?
Porównaj metodę Invert z wykorzystaniem i bez wykorzystania skali szarości:
Odwrócone
Odwrócone i odcienie szarości
Jak mogę zastąpić konkretny kolor w obrazie?
Zamieniaj specyficzne kolory, aby podkreślić lub zminimalizować elementy. Użyj tego, aby poprawić wyrazistość tekstu lub skorygować problematyczne kontrasty.
Dlaczego tolerancja jest ważna w zamianie koloru?
Metoda ReplaceColor wymaga aktualnego koloru, nowego koloru i wartości tolerancji. Wyższa tolerancja lepiej radzi sobie z zamazanymi obrazami.
Tolerancja określa, jak ściśle piksele muszą pasować do koloru docelowego. Niskie wartości (0-50) pasują do jednolitych kolorów. Wyższe wartości (100-200) radzą sobie z wygładzanym tekstem lub artefaktami kompresji. To pomaga przy skanowanych dokumentach, gdzie rozmycie tuszu lub tekstura papieru tworzą wariacje.
Jak wdrożyć zamianę kolorów?
:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-replace-color.cs
using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("sample.jpg");
IronSoftware.Drawing.Color currentColor = new IronSoftware.Drawing.Color("#DB645C");
IronSoftware.Drawing.Color newColor = IronSoftware.Drawing.Color.DarkCyan;
// Replace color
imageInput.ReplaceColor(currentColor, newColor, 80);
// Export the modified image
imageInput.SaveAsImages("replaceColor");
Imports IronOcr
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Add image
Private imageInput = New OcrImageInput("sample.jpg")
Private currentColor As New IronSoftware.Drawing.Color("#DB645C")
Private newColor As IronSoftware.Drawing.Color = IronSoftware.Drawing.Color.DarkCyan
' Replace color
imageInput.ReplaceColor(currentColor, newColor, 80)
' Export the modified image
imageInput.SaveAsImages("replaceColor")
Jak obsłużyć zaawansowane scenariusze zamiany kolorów?
Połącz wiele zamian w złożonych scenariuszach:
/* :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-multiple-replacements.cs */
// Replace multiple colors in sequence
using var imageInput = new OcrImageInput("multi-color-document.jpg");
// Replace red text with black
imageInput.ReplaceColor(IronSoftware.Drawing.Color.Red, IronSoftware.Drawing.Color.Black, 70);
// Replace blue headers with dark gray
imageInput.ReplaceColor(IronSoftware.Drawing.Color.Blue, IronSoftware.Drawing.Color.DarkGray, 60);
// Replace light yellow background with white
imageInput.ReplaceColor(new IronSoftware.Drawing.Color("#FFFACD"), IronSoftware.Drawing.Color.White, 40);
// Perform OCR on the cleaned image
var result = ocrTesseract.Read(imageInput);
/* :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-multiple-replacements.cs */
// Replace multiple colors in sequence
using var imageInput = new OcrImageInput("multi-color-document.jpg");
// Replace red text with black
imageInput.ReplaceColor(IronSoftware.Drawing.Color.Red, IronSoftware.Drawing.Color.Black, 70);
// Replace blue headers with dark gray
imageInput.ReplaceColor(IronSoftware.Drawing.Color.Blue, IronSoftware.Drawing.Color.DarkGray, 60);
// Replace light yellow background with white
imageInput.ReplaceColor(new IronSoftware.Drawing.Color("#FFFACD"), IronSoftware.Drawing.Color.White, 40);
// Perform OCR on the cleaned image
var result = ocrTesseract.Read(imageInput);
Imports IronSoftware.Drawing
' Replace multiple colors in sequence
Using imageInput As New OcrImageInput("multi-color-document.jpg")
' Replace red text with black
imageInput.ReplaceColor(Color.Red, Color.Black, 70)
' Replace blue headers with dark gray
imageInput.ReplaceColor(Color.Blue, Color.DarkGray, 60)
' Replace light yellow background with white
imageInput.ReplaceColor(New Color("#FFFACD"), Color.White, 40)
' Perform OCR on the cleaned image
Dim result = ocrTesseract.Read(imageInput)
End Using
Do zaawansowanej zamiany kolorów zobacz Filtry Korekcji Jakości Obrazu dla dodatkowych technik przetwarzania wstępnego.
Jakie są wizualne wyniki zamiany kolorów?
Przed
Po
Jak odczytać tylko określone kolory tekstu?
Odczytaj określone kolory tekstu za pomocą metody SelectTextColor. Określ docelowy kolor i tolerancję (0-255). Tolerancja oznacza dopuszczalne różnice między pikselem a wybranym kolorem dla wartości R, G i B.
Jak tolerancja kolorowa wpływa na wyniki?
:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-select-text-color.cs
using IronOcr;
using System;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Text color to focus on
IronSoftware.Drawing.Color focusColor = new IronSoftware.Drawing.Color("#DB645C");
// Specify which text color to read
imageInput.SelectTextColor(focusColor, 60);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
// Output result to console
Console.WriteLine(ocrResult.Text);
Imports IronOcr
Imports System
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Add image
Private imageInput = New OcrImageInput("sample.jpg")
' Text color to focus on
Private focusColor As New IronSoftware.Drawing.Color("#DB645C")
' Specify which text color to read
imageInput.SelectTextColor(focusColor, 60)
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Output result to console
Console.WriteLine(ocrResult.Text)
Użyj selektywnego odczytywania kolorów do formularzy z kolorowymi sekcjami, wyciągania podkreślonego tekstu lub odczytywania specyficznych ostrzeżeń. Dla ekstrakcji danych strukturalnych zobacz Klasa OcrResult do zaawansowanego przetwarzania.
Jaki wynik mogę oczekiwać z wyboru koloru?
Wynik OCR czyta tylko tekst w kolorze pomarańczowym:
Jak zapisać zmodyfikowane pliki PDF z zastosowanymi filtrami?
IronOCR zapisuje zmodyfikowane pliki PDF z lub bez zastosowanych filtrów. Drugi parametr metody SaveAsSearchablePdf określa, czy zapisać z zastosowanymi filtrami.
Jaka jest implementacja dla PDF-ów wyszukiwalnych?
:path=/static-assets/ocr/content-code-examples/how-to/image-quality-correction-searchable-pdf.cs
using IronOcr;
// Create OCR engine: filters are applied at the OcrInput level, so no configuration changes are needed here
var ocr = new IronTesseract();
var ocrInput = new OcrInput();
// Load the scanned PDF as the OCR source
ocrInput.LoadPdf("invoice.pdf");
// Convert to grayscale: removes color noise that can reduce OCR accuracy on color-printed documents
ocrInput.ToGrayScale();
// Run OCR on the preprocessed input
OcrResult result = ocr.Read(ocrInput);
// Write the searchable PDF; true = embed the grayscale-filtered image rather than the original color scan
result.SaveAsSearchablePdf("outputGrayscale.pdf", true);
Imports IronOcr
' Create OCR engine: filters are applied at the OcrInput level, so no configuration changes are needed here
Dim ocr As New IronTesseract()
Dim ocrInput As New OcrInput()
' Load the scanned PDF as the OCR source
ocrInput.LoadPdf("invoice.pdf")
' Convert to grayscale: removes color noise that can reduce OCR accuracy on color-printed documents
ocrInput.ToGrayScale()
' Run OCR on the preprocessed input
Dim result As OcrResult = ocr.Read(ocrInput)
' Write the searchable PDF; True = embed the grayscale-filtered image rather than the original color scan
result.SaveAsSearchablePdf("outputGrayscale.pdf", True)
Kiedy stosować filtry do zapisywanego pliku PDF?
Stosuj filtry, gdy tworzysz czystsze, bardziej czytelne dokumenty. To pomaga przy celach archiwalnych lub dzieleniu się dokumentami na różnych urządzeniach. Zobacz Tworzenie Wyszukiwalnych PDF-ów przez OCR dla więcej informacji.
Dla złożonych dokumentów z tabelami, odkryj Odczyt Tabeli w Dokumencie dla specjalizowanej ekstrakcji. Dla przetwarzania w dużej ilości, zobacz Wielowątkowy Tesseract OCR, aby zoptymalizować aplikację filtrów na wielu dokumentach.
Często Zadawane Pytania
Jak mogę naprawić słabe kolory obrazu, które wpływają na dokładność OCR?
IronOCR oferuje wiele metod korekcji kolorów, w tym binaryzację, konwersję do skali szarości, inwersję i zamianę kolorów. Te filtry pomagają poprawić czytelność tekstu, zwiększając kontrast między tekstem a tłem, co ułatwia silnikowi OCR dokładne wyodrębnianie tekstu z obrazów o niskiej jakości kolorów.
Czym jest binaryzacja i kiedy należy jej używać do OCR?
Binarization konwertuje obrazy do formatu dwukolorowego (zwykle czarno-białego) za pomocą metody Binarize IronOCR. Jest szczególnie skuteczna dla zeskanowanych dokumentów z nierównomiernym oświetleniem lub szumem w tle, ponieważ tworzy wyraźne rozróżnienie między tekstem a tłem przez analizowanie obrazu i określenie optymalnych progów do separacji.
Jak mogę wyodrębnić tylko tekst o konkretnym kolorze z obrazu?
Metoda SelectTextColor IronOCR pozwala skupić się na określonych kolorach tekstu, bez skomplikowanej manipulacji obrazem. Wystarczy określić docelowy kolor i poziom tolerancji - na przykład SelectTextColor(new IronSoftware.Drawing.Color("#DB645C"), 60) - aby wyodrębnić tylko tekst z tego zakresu kolorów.
Kiedy powinienem konwertować obrazy do skali szarości zamiast używać binaryzacji?
Użyj metody ToGrayScale IronOCR, gdy masz do czynienia z kolorowymi tłami lub znakami wodnymi, które przeszkadzają w rozpoznawaniu tekstu. W przeciwieństwie do binaryzacji, skala szarości zachowuje szczegóły w obrazach z subtelnymi wariacjami, co czyni ją idealną, gdy chcesz utrzymać jakość obrazu, jednocześnie redukując wizualny hałas.
Czy mogę eksportować poprawione obrazy, aby zobaczyć wyniki filtrów kolorów?
Tak, IronOCR oferuje metodę SaveAsImages do eksportowania zmodyfikowanych obrazów po zastosowaniu korekcji kolorów. Pozwala to porównać wyniki przed i po, pomagając określić, które metody korekcji kolorów działają najlepiej dla Twoich konkretnych obrazów.
Jak mogę określić najlepszy filtr korekcji kolorów dla moich obrazów?
IronOCR zawiera narzędzie Filter Wizard, które pomaga określić optymalną kombinację filtrów dla Twoich obrazów. Dla przetwarzania wsadowego możesz łączyć wiele filtrów, takich jak binaryzacja, z innymi technikami wstępnymi, aby uzyskać najlepsze wyniki OCR dla swojego typu dokumentu.

