Comment obtenir du texte à partir d'images en utilisant Tesseract
L'utilisation de bibliothèques telles qu'IronOCR et Tesseract offre aux développeurs un accès à des algorithmes avancés et à des techniques d'apprentissage automatique pour extraire des informations textuelles à partir d'images et de documents numérisés. Ce tutoriel montrera aux lecteurs comment utiliser la bibliothèque Tesseract pour extraire du texte à partir d'images, et se terminera par la présentation de l'approche unique d'IronOCR.
1. OCR avec Tesseract
1.1. Installer Tesseract
Dans la console du gestionnaire de packages NuGet, saisissez la commande suivante :
Install-Package Tesseract
Ou téléchargez le package via le gestionnaire de packages NuGet.
Installez le package Tesseract dans le Gestionnaire de packages NuGet
Vous devez installer et enregistrer manuellement les fichiers de langue dans le dossier du projet après avoir installé le package NuGet. Cela peut être considéré comme une lacune de cette bibliothèque en particulier.
Visitez le site web suivant pour télécharger les fichiers de langue. Une fois téléchargés, décompressez les fichiers et ajoutez le dossier " tessdata " au dossier de débogage de votre projet.
1.2. Utilisation de Tesseract (Démarrage rapide)
La reconnaissance optique de caractères (OCR) d'une image donnée peut être effectuée à l'aide du code source ci-dessous :
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
- Tout d'abord, un objet
TesseractEnginedoit être créé, chargeant les données de langue dans le moteur. - Le fichier image souhaité est ensuite chargé à l'aide de
Pix.LoadFromFile. - L'image est transmise à
TesseractEnginepour extraire le texte à l'aide de la méthodeProcess. - Le texte reconnu est obtenu avec la méthode
GetTextet imprimé sur la console.
Texte extrait de l'image
1.3 Considérations relatives au tesseract
- Tesseract prend en charge la mise en forme du texte de sortie, les données de position OCR et l'analyse de la mise en page à partir de la version 3.00.
- Tesseract est disponible sur Windows, Linux et MacOS, bien qu'il soit principalement confirmé qu'il fonctionne comme prévu sur Windows et Ubuntu en raison d'un support de développement limité.
- Tesseract peut faire la distinction entre un texte à espacement fixe et un texte à espacement proportionnel.
- En utilisant une interface comme OCRopus, Tesseract est idéal pour une utilisation en tant que back-end et peut être utilisé pour des tâches OCR plus complexes, telles que l'analyse de mise en page.
- Quelques-unes des lacunes de Tesseract :
Les dernières versions n'ont pas été conçues pour être compilées sous Windows.
- Les wrappers d'API C# de Tesseract sont rarement maintenus et accusent un retard de plusieurs années par rapport aux nouvelles versions de Tesseract.
Pour en savoir plus sur Tesseract en C#, veuillez consulter le tutoriel Tesseract .
2. OCR avec IronOCR
2.1. Installation d'IronOCR
Saisissez la commande suivante dans la console du gestionnaire de packages NuGet :
Install-Package IronOcr
Vous pouvez également installer la bibliothèque IronOCR via le gestionnaire de packages NuGet, ainsi que des packages supplémentaires pour d'autres langues, qui sont simples et pratiques à utiliser.
Installez IronOcr et les packages de langues via le gestionnaire de packages NuGet.
2.2. Utilisation d'IronOCR
Voici un exemple de code permettant de reconnaître le texte à partir de l'image donnée :
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
- Ce code initialise un objet
IronTesseract, en configurant la langue et la version de Tesseract. - Un objet
OcrInputest ensuite créé pour charger des fichiers image à l'aide de la méthodeAddImage. - La méthode
ReaddeIronTesseracttraite l'image et extrait le texte, qui est ensuite imprimé sur la console.
Sortie de texte extraite à l'aide de la bibliothèque IronOCR
2.3 Considérations relatives à IronOCR
- IronOCR est une extension de la bibliothèque Tesseract, offrant une plus grande stabilité et une précision accrue.
- IronOCR peut lire le contenu textuel des fichiers PDF et des photos. Il peut également lire plus de 20 types différents de codes-barres et de codes QR.
- La sortie peut être affichée sous forme de texte brut, de données structurées, de codes-barres ou de codes QR.
- La bibliothèque reconnaît 125 langues dans le monde entier .
- IronOCR fonctionne de manière flexible dans tous les environnements .NET (console, Web, bureau, etc.) et prend également en charge les derniers frameworks mobiles tels que Mono, Xamarin, Azure et MAUI .
- IronOCR propose un essai gratuit et dispose d'une édition de développement moins chère. En savoir plus sur la licence.
Pour un tutoriel détaillé sur IronOCR, consultez cet article pour lire du texte à partir d'une image en C# .




