IRONSOFTWAREHOME
KORZYSTANIE Z IRONOCR

Jak wykonać OCR napisów w języku C# (samouczek)

Kannaopat Udonpant
Kannapat Udonpant
Updated: 28 czerwca 2026

W tym samouczku dowiemy się, jak wyodrębnić zakodowane na stałe napisy z plików wideo. Pobierzemy przykładowy plik wideo i wyodrębnimy z niego zakodowane na stałe napisy do pliku tekstowego. Opracujemy program w języku C# .NET, który wyodrębni zakodowane na stałe napisy przy użyciu procesu OCR. Postaram się, aby ten samouczek był prosty i łatwy do zrozumienia, tak aby nawet początkujący programista C# mógł go zrozumieć.

Potrzebujemy wydajnego silnika optycznego rozpoznawania znaków (OCR), który może przetwarzać wideo i uzyskiwać pliki napisów niezależnie od języka napisów.

Dostępnych jest wiele bibliotek zapewniających wyniki OCR. Niektóre z nich są płatne, inne trudne w użyciu, a jeszcze inne nieefektywne lub niedokładne, dlatego bardzo trudno jest znaleźć bibliotekę, która byłaby bezpłatna, wydajna, łatwa w użyciu i zapewniała dokładne wyniki.

IronOCR, który jest bezpłatny do celów programistycznych, oferuje miesięczny bezpłatny okres próbny do celów komercyjnych. Obsługuje ponad 150 języków i zapewnia większą dokładność niż większość innych dostępnych bibliotek OCR. Jest również wydajne i łatwe w użyciu. Wykorzystamy tę bibliotekę do naszej demonstracji.

IronOCR

IronOCR to biblioteka opracowana i utrzymywana przez Iron Software, która pomaga inżynierom oprogramowania C# w wykonywaniu OCR, skanowaniu BarCode'ów i ekstrakcji tekstu w projektach .NET.

Funkcje IronOCR obejmują:

  • Odczytywanie tekstu z wielu formatów, takich jak obrazy (JPEG, PNG, BMP), GIF, TIF/TIFF, strumienie i pliki PDF
  • Korekta skanów i zdjęć niskiej jakości za pomocą szerokiej gamy filtrów, takich jak Deskew, Denoise, Binarize, Enhance Resolution, Dilate i wielu innych
  • Odczyt BARCODE-ów w ponad 20 różnych formatach, wraz z obsługą kodów QR
  • Wykorzystanie najnowszej wersji Tesseract OCR, której wydajność została zoptymalizowana ponad poziom innych bibliotek tego typu
  • Eksportowanie plików PDF z możliwością wyszukiwania, eksportowanie hOCR / HTML oraz tekstu zawartego w obrazach.

Stwórzmy aplikację demonstracyjną do odczytu numerów rejestracyjnych.

Utwórz projekt Visual Studio

Pierwszym krokiem jest utworzenie nowego projektu.

Otwórz program Visual Studio. Kliknij opcję Utwórz nowy projekt i wybierz szablon projektu Aplikacja konsolowa.

Kliknij przycisk Dalej i nadaj nazwę projektowi (ja nazwałem go "OCR Subtitles", możesz nadać mu dowolną nazwę).

Kliknij przycisk Dalej i wybierz docelowy framework. Na koniec kliknij przycisk Utwórz, aby utworzyć projekt.

Projekt zostanie utworzony zgodnie z poniższym opisem.

Jak przeprowadzić OCR napisów w C# (Poradnik), Rysunek 1: Tworzenie nowego projektu w Visual Studio Tworzenie nowego projektu w Visual Studio

Teraz musimy zainstalować bibliotekę IronOCR, aby móc z niej korzystać w naszym projekcie. Najłatwiej jest zainstalować go za pomocą menedżera pakietów NuGet dla rozwiązania.

Zainstaluj pakiet NuGet IronOCR

Kliknij opcję Narzędzia na górnym pasku menu i wybierz Menedżer pakietów NuGet > Zarządzaj pakietami NuGet dla rozwiązania, jak pokazano poniżej.

Jak przeprowadzić OCR napisów w C# (Poradnik), Rysunek 2: Instalowanie IronOCR w Visual Studio Instalacja IronOCR w Visual Studio

Pojawi się następujące okno.

Jak przeprowadzić OCR napisów w C# (Poradnik), Rysunek 3: Interfejs Menedżera Pakietów NuGet w Visual Studio Interfejs użytkownika menedżera pakietów NuGet w Visual Studio

Kliknij "Przeglądaj" i wyszukaj IronOCR. Wybierz pakiet IronOCR i kliknij przycisk Instaluj, jak pokazano poniżej.

Jak przeprowadzić OCR napisów w C# (Poradnik), Rysunek 4: Wyszukiwanie IronOCR w interfejsie Menedżera Pakietów NuGet Wyszukiwanie IronOCR w interfejsie użytkownika menedżera pakietów NuGet

Biblioteka IronOCR zostanie zainstalowana i będzie gotowa do użycia.

Wyodrębnij zakodowane na stałe napisy

Napiszmy program do wyodrębniania zakodowanych na stałe napisów.

Do wyodrębnienia napisów wykorzystamy poniższy zrzut ekranu.

Jak przeprowadzić OCR napisów w C# (Poradnik), Rysunek 5: Przykładowy zrzut ekranu z filmu, z którego zostanie wyodrębniony tekst Przykładowy zrzut ekranu z filmu, z którego zostanie wyodrębniony tekst

Dodaj następującą przestrzeń nazw:

using IronOcr;

Napisz poniższy kod poniżej deklaracji przestrzeni nazw.

// Initialize IronTesseract object
var ocr = new IronTesseract();
// Create an OCR Input using the specified image path
using (var input = new OcrInput(@"D:\License Plate\plate3.jpg"))
{
    // Perform OCR on the input image to extract text
    var result = ocr.Read(input);
    // Output the extracted text to the console
    Console.WriteLine(result.Text);
}

Powyższy kod działa w następujący sposób:

  1. Initialize IronTesseract object. Utworzy to domyślną instancję IronTesseract.
  2. Utworzyć nowy obiekt OcrInput zawierający plik obrazu wejściowego lub dokument PDF. OcrInput jest preferowanym typem wejścia, ponieważ pozwala na OCR dokumentów wielostronicowych i umożliwia poprawę obrazów przed OCR, aby uzyskać szybsze i dokładniejsze wyniki.
  3. Odczytaj tekst z obiektu wejściowego OCR i zwróć obiekt wyniku OCR. ocr.Read wyodrębni napisy z podanego zrzutu ekranu.
  4. result.Text zwróci całą zawartość wyodrębnioną z podanego wejścia.

Przykładowy program generuje poniższy wynik w konsoli:

Jak przeprowadzić OCR napisów w C# (Poradnik), Rysunek 7: Wyjście konsoli wygenerowane po wykonaniu ekstrakcji tekstu na przykładzie obrazu za pomocą IronOCR Wynik wyświetlony w konsoli po przeprowadzeniu ekstrakcji tekstu z przykładowego obrazu przy użyciu IronOCR

Załóżmy, że masz klatkę wideo zawierającą zarówno tytuł filmu, jak i napisy:

Jak przeprowadzić OCR napisów w C# (Poradnik), Rysunek 6: Pojedyncza klatka dłuższego wideo zawierająca obszary tekstowe dla tytułu wideo i napisów wideo Pojedyncza klatka z dłuższego filmu zawierająca obszary tekstowe przeznaczone na tytuł i napisy

Naszym celem jest wyodrębnienie zakodowanych na stałe napisów z dolnej części obrazu. W tym przypadku musimy określić obszar tekstu, w którym wyświetlany jest podtytuł.

Określ położenie napisów w ramce

Możemy użyć System.Drawing.Rectangle, aby określić obszar, w którym odczytamy napis z klatki wideo. Jednostką miary są zawsze piksele.

Do określenia obszaru tekstu użyjemy poniższego przykładowego kodu.

// Initialize IronTesseract object
var ocr = new IronTesseract();
// Create an OCR Input and specify the region of interest
using (var input = new OcrInput())
{
    // Define the area within the image where subtitles are located for a 41% improvement on speed
    var contentArea = new CropRectangle(x: 189, y: 272, height: 252, width: 77);
    // Add the specific region of the image to the OCR input
    input.AddImage(@"D:\subtitle\image.png", contentArea);
    // Perform OCR on the specified region
    var result = ocr.Read(input);
    // Output the extracted text to the console
    Console.WriteLine(result.Text);
}

Daje to 41% wzrost prędkości – i pozwala nam być konkretnymi. W contentArea określiliśmy punkt początkowy w x i y, a następnie wysokość i szerokość wymaganego obszaru napisów.

Zapisz napisy w pliku tekstowym z napisami

Zapiszmy wyodrębnione napisy w pliku tekstowym.

// Initialize IronTesseract object
var ocr = new IronTesseract();
// Create an OCR Input with the specified image path
using (var input = new OcrInput(@"D:\subtitle\subtitle1.png"))
{
    // Perform OCR on the input image to extract text
    var result = ocr.Read(input);
    // Save the extracted text to a specified file path
    result.SaveAsTextFile(@"D:\subtitle\subtitlefile.txt");
}

result.SaveAsTextFile przyjmie ścieżkę wyjściową jako argument i zapisze plik w podanej ścieżce.

Jak przeprowadzić OCR napisów w C# (Poradnik), Rysunek 8: Pojedyncza klatka dłuższego wideo zawierająca obszary tekstowe dla tytułu wideo i napisów wideo Pojedyncza klatka z dłuższego filmu zawierająca obszary tekstowe przeznaczone na tytuł i napisy

Podsumowanie

W tym samouczku nauczyliśmy się korzystać z IronOCR i stworzyliśmy bardzo prosty program do odczytywania napisów z zrzutu ekranu wideo. Możemy również określić region, z którego chcemy wyodrębnić tekst.

IronOCR zapewnia funkcje OpenCV dla wizji komputerowej. Zauważyliśmy, że IronOCR umożliwia nam odczytywanie tekstu z rozmazanych obrazów lub obrazów o niskiej rozdzielczości. Ta biblioteka jest wydajna i zapewnia dokładność. Obsługuje ponad 125 języków z pełną dokładnością. Jest bezpłatny do celów programistycznych i nie ma żadnych ograniczeń dotyczących produkcji.

Podsumowując, IronOCR zapewnia:

  • Możliwość skanowania i odczytywania obrazów oraz zeskanowanych dokumentów
  • Obsługa ponad 150 języków z całego świata
  • Wynik w postaci tekstu, danych strukturalnych lub plików PDF z możliwością wyszukiwania
  • Obsługuje .NET 6, 5, Core, Standard, .NET Framework

IronOCR jest częścią Suite bibliotek firmy Iron Software, przydatnych do odczytu i zapisu plików PDF, manipulowania plikami Excel, odczytu tekstu z obrazów oraz pobierania treści ze stron internetowych. Kup kompletny pakiet Iron Suite w cenie dwóch pojedynczych bibliotek.

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Otrzymaj swoją Konsultację Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta