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.
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
- 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
TesseractEnginew celu wyodrębnienia tekstu przy użyciu metodyProcess. - Rozpoznany tekst jest pobierany za pomocą metody
GetTexti wyświetlany w konsoli za pomocą PRINT.
Tekst wyodrębniony z obrazu
1.3 Uwagi dotyczące Tesseract
- Od wersji 3.00 Tesseract obsługuje formatowanie tekstu wyjściowego, dane pozycyjne OCR oraz analizę układu strony.
- 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.
- Tesseract potrafi rozróżnić tekst o stałej szerokości znaków od tekstu o proporcjonalnej szerokości znaków.
- 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.
- 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.
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
- Ten kod inicjuje obiekt
IronTesseract, konfigurując język i wersję Tesseract. - Następnie tworzony jest obiekt
OcrInputw celu załadowania plików graficznych przy użyciu metodyAddImage. - Metoda
ReadklasyIronTesseractprzetwarza obraz i wyodrębnia tekst, który jest następnie wyświetlany w konsoli.
Tekst wyodrębniony przy użyciu biblioteki IronOCR
2.3 Uwagi dotyczące IronOCR
- IronOCR jest rozszerzeniem biblioteki Tesseract, zapewniającym większą stabilność i wyższą dokładność.
- 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.
- Wynik może być renderowany jako zwykły tekst, dane strukturalne, BARCODE lub kody QR.
- Biblioteka rozpoznaje 125 języków z całego świata.
- 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.
- 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#.




