Przejdź do treści stopki
NARZęDZIA OCR

Jak uzyskać tekst z obrazów za pomocą Tesseract

Wykorzystanie bibliotek takich jak IronOCR i Tesseract zapewnia programistom dostęp do zaawansowanych algorytmów i technik uczenia maszynowego służących do wyodrębniania informacji tekstowych z obrazów i zeskanowanych dokumentów. W tym samouczku pokażemy czytelnikom, jak używać biblioteki Tesseract do wyodrębniania tekstu z obrazów, a na koniec przedstawimy unikalne podejście IronOCR.

1. OCR z Tesseract

1.1. Zainstaluj Tesseract

W konsoli menedżera pakietów NuGet wpisz następujące polecenie:

Install-Package Tesseract

Lub pobierz pakiet za pośrednictwem menedżera pakietów NuGet.

Jak uzyskać rozpoznawanie tekstu OCR, rysunek 1: Zainstaluj pakiet Tesseract w menedżerze pakietów NuGet Zainstaluj pakiet Tesseract w menedżerze pakietów NuGet

Po zainstalowaniu pakietu NuGet należy ręcznie zainstalować i zapisać pliki językowe w folderze projektu. Można to uznać za wadę tej konkretnej biblioteki.

Odwiedź poniższą stronę internetową, aby pobrać pliki językowe. Po pobraniu rozpakuj pliki i dodaj folder "tessdata" do folderu debugowania swojego projektu.

1.2. Korzystanie z Tesseract (szybki start)

Rozpoznawanie tekstu (OCR) na danym obrazie można wykonać przy użyciu poniższego kodu źródłowego:

using Tesseract;

class Program
{
    static void Main()
    {
        // Initialize Tesseract engine with English language data
        using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);

        // Load the image to be processed
        using var img = Pix.LoadFromFile("Demo.png");

        // Process the image to extract text
        using var res = ocrEngine.Process(img);

        // Output the recognized text
        Console.WriteLine(res.GetText());
        Console.ReadKey();
    }
}
using Tesseract;

class Program
{
    static void Main()
    {
        // Initialize Tesseract engine with English language data
        using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);

        // Load the image to be processed
        using var img = Pix.LoadFromFile("Demo.png");

        // Process the image to extract text
        using var res = ocrEngine.Process(img);

        // Output the recognized text
        Console.WriteLine(res.GetText());
        Console.ReadKey();
    }
}
Imports Tesseract

Friend Class Program
	Shared Sub Main()
		' Initialize Tesseract engine with English language data
		Dim ocrEngine = New TesseractEngine("tessdata", "eng", EngineMode.Default)

		' Load the image to be processed
		Dim img = Pix.LoadFromFile("Demo.png")

		' Process the image to extract text
		Dim res = ocrEngine.Process(img)

		' Output the recognized text
		Console.WriteLine(res.GetText())
		Console.ReadKey()
	End Sub
End Class
$vbLabelText   $csharpLabel
  • Najpierw należy utworzyć obiekt TesseractEngine, ładując dane językowe do silnika.
  • Żądany plik graficzny jest następnie ładowany za pomocą Pix.LoadFromFile.
  • Obraz jest przekazywany do TesseractEngine w celu wyodrębnienia tekstu przy użyciu metody Process.
  • Rozpoznany tekst jest pobierany za pomocą metody GetText i wyświetlany w konsoli za pomocą PRINT.

Jak uzyskać rozpoznanie tekstu OCR, rysunek 2: Tekst wyodrębniony z obrazu Tekst wyodrębniony z obrazu

1.3 Uwagi dotyczące Tesseract

  1. Od wersji 3.00 Tesseract obsługuje formatowanie tekstu wyjściowego, dane pozycyjne OCR oraz analizę układu strony.
  2. Tesseract jest dostępny na systemach Windows, Linux i MacOS, choć ze względu na ograniczone wsparcie programistyczne potwierdzono, że działa zgodnie z przeznaczeniem głównie w systemach Windows i Ubuntu.
  3. Tesseract potrafi rozróżnić tekst o stałej szerokości znaków od tekstu o proporcjonalnej szerokości znaków.
  4. Wykorzystując front-end taki jak OCRopus, Tesseract idealnie nadaje się do zastosowania jako back-end i może być wykorzystywany do bardziej wymagających zadań OCR, takich jak analiza układu.
  5. Niektóre wady Tesseracta:
    • Najnowsze kompilacje nie zostały zaprojektowane do kompilacji w systemie Windows
    • Owijki API Tesseract dla języka C# są rzadko aktualizowane i pozostają w tyle za nowymi wersjami Tesseract o kilka lat.

Aby dowiedzieć się więcej o Tesseract w języku C#, odwiedź samouczek Tesseract.

2. OCR z IronOCR

2.1. Instalacja IronOCR

Wpisz następujące polecenie w konsoli menedżera pakietów NuGet:

Install-Package IronOcr

Można też zainstalować bibliotekę IronOCR za pomocą menedżera pakietów NuGet, razem z dodatkowymi pakietami dla innych języków, które są proste i wygodne w użyciu.

Jak uzyskać rozpoznawanie tekstu OCR, rysunek 3: Zainstaluj IronOcr i pakiety językowe za pomocą menedżera pakietów NuGet Zainstaluj IronOcr i pakiety językowe za pomocą menedżera pakietów NuGet

2.2. Korzystanie z IronOCR

Poniżej znajduje się przykładowy kod służący do rozpoznawania tekstu z podanego obrazu:

using IronOcr;

class Program
{
    static void Main()
    {
        // Create an IronTesseract instance with predefined settings
        var ocr = new IronTesseract()
        {
            Language = OcrLanguage.EnglishBest,
            Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
        };

        // Create an OcrInput instance for image processing
        using var input = new OcrInput();

        // Load the image to be processed
        input.AddImage("Demo.png");

        // Process the image and extract text
        var result = ocr.Read(input);

        // Output the recognized text
        Console.WriteLine(result.Text);
        Console.ReadKey();
    }
}
using IronOcr;

class Program
{
    static void Main()
    {
        // Create an IronTesseract instance with predefined settings
        var ocr = new IronTesseract()
        {
            Language = OcrLanguage.EnglishBest,
            Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
        };

        // Create an OcrInput instance for image processing
        using var input = new OcrInput();

        // Load the image to be processed
        input.AddImage("Demo.png");

        // Process the image and extract text
        var result = ocr.Read(input);

        // Output the recognized text
        Console.WriteLine(result.Text);
        Console.ReadKey();
    }
}
Imports IronOcr

Friend Class Program
	Shared Sub Main()
		' Create an IronTesseract instance with predefined settings
		Dim ocr = New IronTesseract() With {
			.Language = OcrLanguage.EnglishBest,
			.Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
		}

		' Create an OcrInput instance for image processing
		Dim input = New OcrInput()

		' Load the image to be processed
		input.AddImage("Demo.png")

		' Process the image and extract text
		Dim result = ocr.Read(input)

		' Output the recognized text
		Console.WriteLine(result.Text)
		Console.ReadKey()
	End Sub
End Class
$vbLabelText   $csharpLabel
  • Ten kod inicjuje obiekt IronTesseract, konfigurując język i wersję Tesseract.
  • Następnie tworzony jest obiekt OcrInput w celu załadowania plików graficznych przy użyciu metody AddImage.
  • Metoda Read klasy IronTesseract przetwarza obraz i wyodrębnia tekst, który jest następnie wyświetlany w konsoli.

Jak uzyskać rozpoznanie tekstu OCR, rysunek 4: Wyodrębniony tekst wygenerowany przy użyciu biblioteki IronOCR Tekst wyodrębniony przy użyciu biblioteki IronOCR

2.3 Uwagi dotyczące IronOCR

  1. IronOCR jest rozszerzeniem biblioteki Tesseract, zapewniającym większą stabilność i wyższą dokładność.
  2. IronOCR potrafi odczytywać treści tekstowe z plików PDF i zdjęć. Może również odczytywać ponad 20 różnych rodzajów kodów BarCode i kodów QR.
  3. Wynik może być renderowany jako zwykły tekst, dane strukturalne, BARCODE lub kody QR.
  4. Biblioteka rozpoznaje 125 języków z całego świata.
  5. IronOCR działa elastycznie we wszystkich środowiskach .NET (konsola, internet, komputery stacjonarne itp.), a także obsługuje najnowsze frameworki mobilne, takie jak Mono, Xamarin, Azure i MAUI.
  6. IronOCR oferuje bezpłatną wersję próbną oraz tańszą wersję deweloperską. Dowiedz się więcej o licencjonowaniu.

Aby uzyskać szczegółowy samouczek dotyczący IronOCR, zapoznaj się z tym artykułem, aby przeczytać tekst z obrazu w języku C#.

Kannaopat Udonpant
Inżynier oprogramowania
Zanim stał się inżynierem oprogramowania, Kannapat ukończył doktorat z zasobów środowiskowych na Uniwersytecie Hokkaido w Japonii. W czasie studiowania, Kannapat również został członkiem Laboratorium Robotyki Pojazdów, które jest częścią Wydziału Inżynierii Bioprodukcji. W 2022 roku wykorzystał swoje umiejętności w ...
Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie