Comment créer une reconnaissance de caractères en C#
Publié avril 29, 2024
Partager:
Introduction
La technologie de la reconnaissance optique des caractères(OCR)permet la conversion de texte en formats numériques lisibles par machine. Lorsqu'un document est numérisé(comme une facture ou un reçu)l'image numérisée est enregistrée par votre ordinateur sous la forme d'un fichier image. Toutefois, le texte contenu dans l'image numérisée ne peut pas être modifié, recherché ou compté à l'aide d'un éditeur de texte ordinaire.
Cependant, l'OCR peut traiter l'image, extraire le texte et le transformer en un format de texte lisible par les ordinateurs. Il permet d'extraire du texte à partir de diverses sources, y compris des fichiers PDF et d'autres images numérisées. En outre, les capacités d'OCR vont au-delà de la simple extraction de texte pour inclure les principaux formats d'image et les documents PDF, en les convertissant en données OCR consultables.
En C#, les développeurs peuvent exploiter la puissance de l'OCR grâce à diverses bibliothèques, dont la puissante bibliothèqueIronOCR deIron Software. Dans ce tutoriel, nous explorerons les bases de l'OCR et montrerons comment utiliser l'OCRIronOCR pour effectuer une reconnaissance de caractères efficace en C#.
Comment créer une reconnaissance de caractères dans C# ;
Créez un tout nouveau projet C# et donnez-lui un nom dans Visual Studio.
Installer leIronOCR .NET et l'inclure dans le dossier du projet.
Utiliser leIronOCR Tesseract pour lire du texte à partir d'images.
Utiliser leIronOCR Fonctionnalités avancées pour lire le texte dans les images
Optimisation des performances deIronOCR Lire l'opération.
Premiers pas avec IronOCR
IronOCR une bibliothèque C# développée parIron Software est un logiciel qui offre des capacités avancées d'OCR. Il permet d'extraire avec précision du texte à partir d'images, de PDF et de documents numérisés. Avant de nous plonger dans le code, assurez-vous que vous avez installé IronOCR dans votre projet.
IronOCR augmente les capacités du moteur OCR Tesseract, largement utilisé, en améliorant à la fois la précision et la vitesse. Il s'agit d'une solution robuste pour l'extraction de texte à partir de diverses sources, y compris les images, les PDF et d'autres formats de documents.
Large couverture linguistique
Prenant en charge plus de 127 langues, IronOCR est capable de répondre aux besoins multilingues, ce qui en fait un choix idéal pour les applications exigeant une polyvalence linguistique.
Choix de sorties polyvalentes
Le texte extrait peut être édité sous forme de texte simple ou de données structurées pour une intégration transparente dans les pipelines de traitement ultérieurs. En outre, IronOCR facilite la création de PDF consultables directement à partir d'images.
Adaptabilité multiplateforme
Conçu pour être compatible avec C#, F# et VB.NET, IronOCR fonctionne en toute transparence dans divers environnements .NET, notamment les versions 8, 7, 6, Core, Standard et Framework.
Tirer parti de Tesseract 5
IronOCR exploite la puissance de Tesseract 5, finement adapté pour des performances optimales au sein de l'écosystème .NET.
Capacité d'OCR par zone
Avec IronOCR, les utilisateurs peuvent définir avec précision des zones spécifiques dans les documents, ce qui permet un traitement OCR ciblé. Cette fonction améliore la précision et l'efficacité en concentrant la puissance de traitement là où elle est le plus nécessaire.
Outils de prétraitement d'images
La bibliothèque offre une suite de fonctionnalités de prétraitement d'images telles que le désalignement et la réduction du bruit. Ces outils garantissent des résultats de qualité supérieure, même lorsque les images sources sont imparfaites, ce qui améliore l'expérience globale de l'OCR.
Nous allons maintenant développer une application de démonstration qui utilise IronOCR pour lire du texte à partir d'images.
Conditions préalables
Visual Studio: Assurez-vous que vous avez installéVisual Studio ou tout autre environnement de développement C#.
NuGet Package Manager: Assurez-vous que NuGet est présent afin de gérer les paquets dans votre projet.
Étape 1 : Créer un nouveau projet C# dans Visual Studio
Pour commencer, créons une nouvelle application console à l'aide de Visual Studio, comme indiqué ci-dessous.
Indiquez ci-dessous le nom et l'emplacement du projet.
Sélectionnez la version .NET requise pour le projet.
Cliquez sur le bouton Créer pour créer le nouveau projet.
Étape 2 : Installez la bibliothèque IronOCR et intégrez-la à votre projet.
IronOCR peuvent être trouvés dans leNuGet comme indiqué ci-dessous. Utilisez la commande fournie pour installer le paquet.
À l'aide du gestionnaire de paquets NuGet de Visual Studio, recherchez IronOCR et installez-le dans le dossier de votre projet.
Une fois installée, l'application est prête à utiliserIronOCR pour lire du texte à partir d'images.
Étape 3 : Utiliser le IronOCR Tesseract pour lire du texte à partir d'images.
IronOCR se distingue en tant que bibliothèque .NET exclusive offrant les capacités OCR de Tesseract 5. À l'heure actuelle, elle a la particularité d'être la bibliothèque Tesseract 5 la plus sophistiquée, tous langages de programmation confondus. IronOCR intègre de manière transparente Tesseract 5 dans divers environnements .NET, notamment Framework, Standard, Core, Xamarin et Mono, garantissant ainsi une prise en charge complète dans l'ensemble de l'écosystème.
Considérons le fichier image ci-dessous comme entrée. Voyons maintenant comment lire le texte dans ce fichier image
using IronOcr;
public class Program
{
public static void Main(String [] args)
{
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"sample1.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
}
using IronOcr;
public class Program
{
public static void Main(String [] args)
{
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"sample1.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
}
Imports IronOcr
Public Class Program
Public Shared Sub Main(ByVal args() As String)
Dim ocrTesseract = New IronTesseract()
Dim ocrInput As New OcrInput()
ocrInput.LoadImage("sample1.png")
Dim ocrResult = ocrTesseract.Read(ocrInput)
Console.WriteLine(ocrResult.Text)
End Sub
End Class
$vbLabelText $csharpLabel
Explication du code
Nous commençons par créer IronTesseract avec la configuration requise
Nous chargeons ensuite l'exemple d'image affiché dans l'objet OcrInput
Enfin, nous lisons le texte de l'image et l'affichons sur la console
Sortie
Étape 4 : Utiliser les fonctionnalités avancées d'IronOCR pour lire le texte dans les images
L'objet IronTesseract.Configuration permet aux utilisateurs avancés d'accéder à l'API Tesseract sous-jacente au sein de C#/.NET, ce qui permet une configuration détaillée de l'installation en vue d'un réglage fin et d'une optimisation. Voici quelques-unes des configurations avancées possibles
Sélection de la langue
Vous pouvez spécifier la langue de l'OCR à l'aide de la propriété Language. Par exemple, pour régler la langue sur l'anglais, utilisez :
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.English
$vbLabelText $csharpLabel
Mode de segmentation des pages
Le PageSegmentationMode détermine la manière dont Tesseract segmente l'image d'entrée. Les options comprennent AutoOsd, SingleBlock, SingleLine, etc. Par exemple :
Essayons maintenant de décoder la même image en utilisant les paramètres avancés
using IronOcr;
public class Program
{
public static void Main()
{
Console.WriteLine("Decoding using advanced features");
var ocrTesseract = new IronTesseract() // create instance
{
Language = OcrLanguage.EnglishBest, // configure best english language
Configuration = new TesseractConfiguration()
{
ReadBarCodes = false, // read bar codes false
BlackListCharacters = "`ë
^", // black listed characters
WhiteListCharacters = null, // no white list, allow all
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
TesseractVariables = null, // no custom variable used
},
MultiThreaded = false,
};
using var ocrInput = new OcrInput(); // create a disposible ocr input object
ocrInput.AddImage(@"sample1.png"); // load the sample image
var ocrResult = ocrTesseract.Read(ocrInput); // read the text from the image
Console.WriteLine(ocrResult.Text);// output the image
}
}
using IronOcr;
public class Program
{
public static void Main()
{
Console.WriteLine("Decoding using advanced features");
var ocrTesseract = new IronTesseract() // create instance
{
Language = OcrLanguage.EnglishBest, // configure best english language
Configuration = new TesseractConfiguration()
{
ReadBarCodes = false, // read bar codes false
BlackListCharacters = "`ë
^", // black listed characters
WhiteListCharacters = null, // no white list, allow all
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
TesseractVariables = null, // no custom variable used
},
MultiThreaded = false,
};
using var ocrInput = new OcrInput(); // create a disposible ocr input object
ocrInput.AddImage(@"sample1.png"); // load the sample image
var ocrResult = ocrTesseract.Read(ocrInput); // read the text from the image
Console.WriteLine(ocrResult.Text);// output the image
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText $csharpLabel
Explication du code
Configuration IronOCR : Une instance d'IronTesseract(la classe principale IronOCR) est créée et affectée à la variable ocrTesseract.
Les paramètres de configuration sont appliqués à ocrTesseract :
Langue : Spécifie la langue de l'OCR(en l'occurrence, l'anglais).
Configuration : Un objet TesseractConfiguration qui permet une personnalisation plus poussée :
ReadBarCodes : Désactive la lecture des codes-barres.
BlackListCharacters : Spécifie les caractères à mettre sur liste noire(caractères à ne pas reconnaître).
WhiteListCharacters : Aucune liste blanche n'est spécifiée, tous les caractères sont autorisés.
PageSegmentationMode : Définit le mode de segmentation des pages sur "AutoOsd"
TesseractVariables : Aucune variable personnalisée n'a été utilisée.
MultiThreaded : Désactive le multithreading.
EntréeOCR et chargement d'images: Un bloc d'utilisation crée un objet ocrInput jetable de type OcrInput. Le fichier image "sample1.png" est ajouté à ocrInput.
Extraction de texte : La méthode Read est appelée sur ocrTesseract, en passant par ocrInput.
Le résultat est stocké dans la variable ocrResult.
Sortie : Le texte extrait est imprimé sur la console à l'aide de Console.WriteLine(ocrResult.Text).
Sortie
Étape 5 : Optimisation des performances de l'opération de lecture IronOCR.
Lorsque vous travaillez avec IronOCR, vous avez accès à divers filtres d'image qui peuvent aider à prétraiter les images avant d'effectuer l'OCR. Ces filtres optimisent la qualité de l'image, améliorent la visibilité et réduisent le bruit ou les artefacts. Ils permettent d'améliorer les performances de l'opération d'OCR.
Rotate :
Le filtre Rotation permet de faire pivoter les images d'un certain nombre de degrés dans le sens des aiguilles d'une montre. Pour une rotation dans le sens inverse des aiguilles d'une montre, utilisez des nombres négatifs.
Deskew :
Le filtre Deskew corrige l'obliquité de l'image, en veillant à ce que le texte soit droit et orthogonal. Ceci est particulièrement utile pour l'OCR, car Tesseract fonctionne mieux avec des scans correctement orientés.
Echelle :
Le filtre Échelle met à l'échelle proportionnellement les pages d'entrée de l'OCR.
Binariser :
Le filtre Binarize convertit chaque pixel en noir ou en blanc, sans zone intermédiaire. Il permet d'améliorer les performances de l'OCR en cas de très faible contraste entre le texte et l'arrière-plan.
ToGrayScale :
Le filtre ToGrayScale convertit chaque pixel en une nuance de gris. Bien qu'il soit peu probable qu'elle améliore de manière significative la précision de l'OCR, elle peut en améliorer la vitesse.
Invert :
Le filtre Invert inverse les couleurs : le blanc devient noir et le noir devient blanc.
ReplaceColor :
Le filtre ReplaceColor remplace une couleur spécifique dans une image par une autre couleur, en tenant compte d'un certain seuil.
Contraste :
Le filtre Contraste augmente automatiquement le contraste. Il améliore souvent la vitesse et la précision de l'OCR dans les numérisations à faible contraste.
Dilater et Éroder :
Ces filtres morphologiques avancés manipulent les limites des objets dans une image.
La dilatation ajoute des pixels aux limites de l'objet.
Erode supprime les pixels des limites de l'objet.
Aiguiser :
Le filtre Sharpen permet d'accentuer la netteté des documents OCR flous et d'aplatir les canaux alpha au blanc.
DeNoise :
Le filtre DeNoise supprime le bruit numérique. Utilisez-le lorsque du bruit est attendu.
DeepCleanBackgroundNoise :
Ce filtre de suppression du bruit de fond important ne doit être utilisé que lorsque le bruit de fond extrême du document est connu. Elle peut réduire la précision de l'OCR pour les documents propres et est gourmande en ressources humaines.
Améliorer la résolution :
Le filtre EnhanceResolution améliore la résolution des images de faible qualité. Elle n'est pas souvent nécessaire en raison de la gestion automatique de la résolution.
Voici un exemple d'application de filtres à l'aide d'IronOCR en C# :
var ocr = new IronTesseract();
var input = new OcrInput();
input.LoadImage("sample.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
var ocr = new IronTesseract();
var input = new OcrInput();
input.LoadImage("sample.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Dim ocr = New IronTesseract()
Dim input = New OcrInput()
input.LoadImage("sample.png")
input.Deskew()
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
$vbLabelText $csharpLabel
Applications courantes de l'OCR
Numérisation de documents: L'OCR est largement utilisé pour convertir en format numérique des documents papier scannés, tels que des factures, des reçus, des formulaires et des contrats. Ce processus de numérisation rationalise le stockage, la récupération et la gestion des documents, réduisant ainsi l'encombrement du papier et améliorant l'efficacité.
Extraction de données: L'OCR permet d'extraire du texte et des données à partir de documents numérisés, d'images et de PDF. Ces données extraites peuvent être utilisées pour la saisie automatisée de données, l'analyse de contenu, l'indexation et l'intégration dans des bases de données ou des systèmes d'entreprise.
Reconnaissance de texte dans les images : La technologie OCR permet d'extraire du texte de documents imprimés et d'images à des fins d'indexation et de recherche. Cette capacité est utilisée dans diverses applications, notamment la réalité augmentée, les moteurs de recherche basés sur l'image et les services de traduction.
Reconnaissance automatique des plaques d'immatriculation(ALPR): Les systèmes ALPR utilisent l'OCR pour lire les numéros de plaques d'immatriculation à partir d'images ou de flux vidéo capturés par des caméras installées dans des applications de surveillance du trafic, de gestion des parkings, de perception de péages et d'application de la loi.
Solutions d'accessibilité: OCR joue un rôle crucial dans la création de contenus accessibles aux personnes souffrant de déficiences visuelles. En convertissant le texte des images ou des documents en parole ou en braille, l'OCR contribue à rendre l'information accessible aux personnes handicapées.
**La technologie OCR est utilisée dans les processus de vérification de l'identité, tels que la numérisation et le traitement des documents d'identité comme les passeports, les permis de conduire et les cartes d'identité. Il permet de vérifier l'authenticité des documents et d'extraire des informations pertinentes à des fins de vérification de l'identité.
Banque et finance: L'OCR est utilisé dans la banque et la finance pour des tâches telles que la lecture de chèques, le traitement de factures, la conversion d'un document PDF existant, l'extraction de données à partir d'états financiers et l'automatisation de flux de travail basés sur des documents afin d'améliorer la précision et l'efficacité des opérations financières.
**La technologie OCR est intégrée dans les outils de traduction et les applications d'apprentissage des langues pour convertir les textes imprimés d'une langue à l'autre. Les utilisateurs peuvent saisir du texte à l'aide de leur appareil et l'OCR les aide à le traduire dans la langue souhaitée en temps réel.
Préservation des archives et des documents historiques: L'OCR est utilisé pour numériser les documents d'archives et les documents historiques, les préservant dans des formats numériques pour un accès futur, la recherche et l'analyse, tout en assurant la préservation d'un patrimoine culturel de grande valeur.
Conditions d'obtention de la licence
IronOCR. Fournissez les détails ci-dessous pour recevoir la clé à votre adresse électronique
Une fois la clé obtenue, soit par achat, soit par essai gratuit, suivez les étapes suivantes pour utiliser la clé
Définir votre clé de licence : Définissez votre clé de licence IronOCR en utilisant le code. Ajoutez la ligne suivante au démarrage de votre application(avant d'utiliser IronOCR):
Clé d'application mondiale(Web.Config ou App.Config) : Pour appliquer une clé globalement dans votre application, utilisez le fichier de configuration(Web.Config ou App.Config). Ajoutez la clé suivante à votre appSettings :
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<configuration> <!-- Other settings -- > <appSettings> <add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/> </appSettings> </configuration>
$vbLabelText $csharpLabel
Utilisation du fichier appsettings.json de .NET Core : Pour les applications .NET Core, créez un fichier appsettings.json dans le répertoire racine de votre projet. Remplacez la clé "IronOcr.LicenseKey" par la valeur de votre licence :
Jordi maîtrise parfaitement Python, C# et C++. Lorsqu'il ne met pas à profit ses compétences chez Iron Software, il se consacre à la programmation de jeux. Partageant des responsabilités en matière de tests de produits, de développement de produits et de recherche, Jordi apporte une valeur ajoutée considérable à l'amélioration continue des produits. Cette expérience variée le stimule et l'engage, et il dit que c'est l'un des aspects qu'il préfère dans son travail chez Iron Software. Jordi a grandi à Miami, en Floride, et a étudié l'informatique et les statistiques à l'université de Floride.
< PRÉCÉDENT Comment réaliser l'OCR de l'immatriculation d'un véhicule en C#
SUIVANT > Comment lire des documents d'identité à l'aide de l'OCR en C#
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucune obligation de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre gratuit Démonstration en direct
Fiable par plus de 2 millions d'ingénieurs dans le monde entier