Comment convertir image en texte manuscrit avec IronOCR en C
IronOCR, logiciel OCR pour .NET, fournit une méthode spécialisée ReadHandwriting qui convertit image en texte manuscrit de manière fiable, atteignant une précision d'environ 90 % pour l'écriture manuscrite anglaise malgré les défis inhérents à l'espacement irrégulier et aux variations de traits.
Démarrage rapide : Lire des images d'écriture manuscrite avec IronOCR
- Installer IronOCR et le paquet IronOcr.Extensions.AdvancedScan
- Créez une instance
IronTesseract - Chargez votre image d'écriture manuscrite en utilisant
LoadImage() - Appeler la méthode
ReadHandwriting() - Accédez au texte extrait de
OcrResult
-
Installez IronOCR avec le Gestionnaire de Packages NuGet
PM > Install-Package IronOcr -
Copiez et exécutez cet extrait de code.
using IronOcr; var ocrTesseract = new IronTesseract(); using var ocrInput = new OcrInput(); ocrInput.LoadImage("handwriting.png"); var ocrResult = ocrTesseract.ReadHandwriting(ocrInput); Console.WriteLine(ocrResult.Text); -
Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit
La lecture automatique de textes manuscrits à partir d'images est extrêmement difficile car les gens écrivent différemment. Cette incohérence massive rend l'OCR difficile. Les documents cruciaux tels que les anciens dossiers, les formulaires d'admission des patients et les enquêtes auprès des clients nécessitent toujours un traitement manuel, ce qui entraîne des flux de travail sujets aux erreurs qui compromettent l'intégrité des données.
IronOCR résout ce problème en introduisant une méthode spécialisée pour comprendre et numériser de manière fiable les images d'écriture manuscrite. Construit sur le puissant moteur Tesseract 5, IronOcr combine un traitement d'image avancé avec l'apprentissage automatique pour offrir des capacités de reconnaissance de l'écriture manuscrite à la pointe de l'industrie.
Ce guide explique étape par étape la mise en œuvre de l'OCR de l'écriture manuscrite dans vos applications .NET. Que vous numérisiez des documents historiques, traitiez des formulaires médicaux ou convertissiez des notes manuscrites, vous apprendrez à obtenir des résultats fiables avec IronOcr.
Commencez avec IronOCR
Comment lire des images d'écriture manuscrite à l'aide d'IronOCR
- Téléchargez la bibliothèque C# pour la lecture d'images d'écriture manuscrite
- Instancier le moteur OCR
- Chargez l'image de l'écriture manuscrite avec `LoadImage`
- Utilisez la méthode `ReadHandwriting` pour extraire des données de l'échantillon d'image d'écriture manuscrite
- Accédez à la propriété **OcrResult** pour visualiser et manipuler les données extraites.
Pour utiliser cette fonction, vous devez d'abord installer le paquet IronOcr.Extensions.AdvancedScan. Veuillez noter que la méthode ReadHandwriting ne prend actuellement en charge que l'anglais. Pour l'OCR multilingue , utilisez la méthode standard Read() avec les packs de langue appropriés.
Comment convertir image en texte manuscrit avec IronOCR en C#?
La lecture d'une image d'écriture manuscrite avec IronOCR est simple. Commencez par instancier le moteur OCR, puis chargez l'image avec LoadImage, et enfin utilisez la méthode spécialisée ReadHandwriting conçue pour la reconnaissance de l'écriture manuscrite. Imprimez le texte extrait pour en vérifier l'exactitude et le contenu.
Avant le traitement, pensez à appliquer des filtres de correction de la qualité de l'image pour améliorer la lisibilité. Ces filtres peuvent améliorer considérablement la précision de la reconnaissance, en particulier pour les documents numérisés dont le contraste ou la résolution est faible.
Quel format d'entrée dois-je utiliser?
:path=/static-assets/ocr/content-code-examples/how-to/read-handwritten-image.cs
using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
// Load handwriting image
var inputHandWriting = new OcrInput();
inputHandWriting.LoadImage("handwritten.png");
// Perform OCR on the handwriting image
OcrHandwritingResult result = ocr.ReadHandwriting(inputHandWriting);
// Output the recognized handwritten text
Console.WriteLine(result.Text);
// Output the confidence score of the OCR result
Console.WriteLine(result.Confidence);
Imports IronOcr
Imports System
' Instantiate OCR engine
Dim ocr As New IronTesseract()
' Load handwriting image
Dim inputHandWriting As New OcrInput()
inputHandWriting.LoadImage("handwritten.png")
' Perform OCR on the handwriting image
Dim result As OcrHandwritingResult = ocr.ReadHandwriting(inputHandWriting)
' Output the recognized handwritten text
Console.WriteLine(result.Text)
' Output the confidence score of the OCR result
Console.WriteLine(result.Confidence)
Quels résultats puis-je attendre ?
La méthode ReadHandwriting a atteint un score de confiance de 90,6 %, identifiant correctement la majorité du texte, y compris la phrase d'ouverture " Je m'appelle Erin Fish ".
Cet excellent résultat démontre la capacité d'IronOCR à traiter des textes manuscrits difficiles. Bien que le moteur ait eu du mal à gérer l'espacement et les lettres connectées, il a réussi à extraire le message principal. Cela montre qu'IronOCR traite efficacement des textes complexes et non standard.
Pour les novices en matière d'OCR, commencez par notre tutoriel d'OCR simple pour comprendre les bases avant de vous attaquer à la reconnaissance de l'écriture manuscrite.
Comment utiliser la version asynchrone?
IronOCR prend en charge une version asynchrone : ReadHandwritingAsync. Cela s'avère utile lorsqu'il s'agit de code asynchrone qui nécessite de récupérer des images d'entrée avant de les traiter. La documentation de support asynchrone fournit des conseils complets sur la mise en œuvre d'opérations OCR asynchrones.
En utilisant la même entrée, voici comment utiliser la méthode asynchrone :
:path=/static-assets/ocr/content-code-examples/how-to/read-handwritten-image-async.cs
using IronOcr;
using System;
using System.Threading.Tasks;
using System;
using System.Threading.Tasks;
#endregion
public class read_handwritten_image_async
{
public async Task codeAsync()
{
// Instantiate OCR engine
var ocr = new IronTesseract();
// Load handwriting image
var inputHandWriting = new OcrInput();
inputHandWriting.LoadImage("handwritten.png");
// Perform OCR using the async method with 'await'.
// The compiler automatically infers this top-level code block as an 'async Task Main()' method.
OcrHandwritingResult result = await ocr.ReadHandwritingAsync(inputHandWriting);
// Output the recognized handwriting text
Console.WriteLine(result.Text);
// Output the confidence score of the OCR result
Console.WriteLine(result.Confidence);
Imports IronOcr
Imports System
Imports System.Threading.Tasks
Public Class ReadHandwrittenImageAsync
Public Async Function CodeAsync() As Task
' Instantiate OCR engine
Dim ocr As New IronTesseract()
' Load handwriting image
Dim inputHandWriting As New OcrInput()
inputHandWriting.LoadImage("handwritten.png")
' Perform OCR using the async method with 'Await'.
' The compiler automatically infers this top-level code block as an 'async Task Main()' method.
Dim result As OcrHandwritingResult = Await ocr.ReadHandwritingAsync(inputHandWriting)
' Output the recognized handwriting text
Console.WriteLine(result.Text)
' Output the confidence score of the OCR result
Console.WriteLine(result.Confidence)
End Function
End Class
Vous pouvez fournir un paramètre optionnel timeoutMs pour spécifier les millisecondes avant l'annulation automatique. La valeur par défaut est -1, ce qui signifie aucune limite de temps : l'opération s'exécute jusqu'à son terme.
Techniques de traitement avancées
Pour les scénarios complexes de reconnaissance de l'écriture manuscrite, envisagez ces techniques avancées :
OCR spécifique à une région : Lorsque vous travaillez avec des formulaires ou des documents structurés, utilisez l'OCR par région pour vous concentrer sur des zones spécifiques contenant du texte manuscrit. Cette approche améliore la précision en limitant la zone de traitement :
using IronOcr;
using IronSoftware.Drawing;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// Define a specific region for signature area
var signatureRegion = new CropRectangle(x: 100, y: 500, width: 300, height: 100);
ocrInput.LoadImage("form-with-signature.png", signatureRegion);
var signatureResult = ocrTesseract.ReadHandwriting(ocrInput);
Console.WriteLine($"Signature text: {signatureResult.Text}");
using IronOcr;
using IronSoftware.Drawing;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// Define a specific region for signature area
var signatureRegion = new CropRectangle(x: 100, y: 500, width: 300, height: 100);
ocrInput.LoadImage("form-with-signature.png", signatureRegion);
var signatureResult = ocrTesseract.ReadHandwriting(ocrInput);
Console.WriteLine($"Signature text: {signatureResult.Text}");
Imports IronOcr
Imports IronSoftware.Drawing
Dim ocrTesseract As New IronTesseract()
Using ocrInput As New OcrInput()
' Define a specific region for signature area
Dim signatureRegion As New CropRectangle(x:=100, y:=500, width:=300, height:=100)
ocrInput.LoadImage("form-with-signature.png", signatureRegion)
Dim signatureResult = ocrTesseract.ReadHandwriting(ocrInput)
Console.WriteLine($"Signature text: {signatureResult.Text}")
End Using
Suivi de l'avancement : Pour le traitement par lots de plusieurs documents manuscrits, mettez en place un suivi de l'avancement pour surveiller l'opération d'OCR :
ocrTesseract.OcrProgress += (sender, e) =>
{
Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
ocrTesseract.OcrProgress += (sender, e) =>
{
Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
ocrTesseract.OcrProgress += Sub(sender, e)
Console.WriteLine($"Processing: {e.ProgressPercent}% complete")
End Sub
Quels sont les défis à relever ?
Bien qu'IronOCR atteigne un niveau de confiance élevé dans la conservation de la structure globale et du texte, l'OCR éprouve encore des difficultés avec l'écriture manuscrite, ce qui entraîne des erreurs localisées. Les défis courants nécessitent une vérification des résultats extraits :
Espacement irrégulier : Un texte imprimé présente un espacement uniforme entre les lettres. L'espacement entre les traits de l'écriture manuscrite et les connexions entre les lettres varient considérablement. Cela provoque une segmentation incorrecte des caractères, comme le montre le fait que ununiformed se divise en caractères individuels (non unicommed) au lieu d'un seul mot.
Variation des traits : Chaque personne a une écriture unique, et les individus écrivent la même lettre différemment à chaque fois. Les connexions et les motifs des lettres varient considérablement. Le moteur doit en effet gérer une grande variabilité dans l'inclinaison, la pression et la forme des traits, ce qui rend la correspondance des formes moins fiable qu'avec des polices normalisées.
Formes de caractères ambiguës : L'écriture manuscrite utilise souvent des traits simplifiés ou hâtifs, créant des formes ambiguës. Un caractère écrit rapidement e peut ressembler à un c, ou les caractères liés l et i peuvent être confondus.
Qualité et résolution : Une mauvaise qualité de numérisation, une faible résolution ou une encre délavée ont un impact significatif sur la précision de la reconnaissance. Si vous rencontrez de tels problèmes, consultez notre guide de dépannage général pour trouver des solutions.
Lorsque vous utilisez cette méthode, vérifiez que le résultat correspond à l'entrée prévue, en accordant une attention particulière aux mots peu espacés ou mal formés. Pensez à mettre en œuvre une logique de post-traitement pour gérer les erreurs de reconnaissance courantes spécifiques à votre cas d'utilisation.
ReadHandwriting ne peut atteindre qu'une faible précision d'extraction OCR lorsqu'il s'agit d'écritures cursives. Questions Fréquemment Posées
Quelle précision puis-je attendre lors de l'extraction de texte manuscrit à partir d'images ?
La méthode ReadHandwriting d'IronOCR atteint une précision d'environ 90 % pour la reconnaissance de l'écriture manuscrite en anglais, malgré les défis inhérents à l'espacement irrégulier et aux variations de traits qui rendent l'OCR de l'écriture manuscrite particulièrement difficile.
Quelles sont les langues prises en charge pour la reconnaissance de l'écriture manuscrite ?
La méthode ReadHandwriting d'IronOcr ne prend actuellement en charge que l'anglais. Pour l'OCR en plusieurs langues, vous devrez utiliser la méthode standard Read() avec les packs de langue appropriés au lieu de la méthode spécialisée handwriting.
Quel progiciel supplémentaire dois-je installer pour l'OCR de l'écriture manuscrite ?
Pour utiliser la fonctionnalité de reconnaissance de l'écriture manuscrite dans IronOCR, vous devez installer le package IronOcr.Extensions.AdvancedScan en plus de la bibliothèque principale IronOCR.
Comment mettre en œuvre la reconnaissance de l'écriture manuscrite de base en C# ?
Créez une instance IronTesseract, chargez votre image d'écriture manuscrite à l'aide de LoadImage(), appelez la méthode ReadHandwriting() et accédez au texte extrait à partir du résultat OcrResult. IronOCR se charge automatiquement du traitement complexe de l'image et de l'apprentissage automatique.
Quels types de documents manuscrits peuvent être traités ?
IronOcr peut traiter divers documents manuscrits, notamment des dossiers historiques, des formulaires d'admission des patients, des enquêtes auprès des clients et des notes manuscrites. La bibliothèque est conçue pour gérer les incohérences de l'écriture humaine qui rendent le traitement manuel sujet aux erreurs.
Quelle est la technologie utilisée pour la reconnaissance de l'écriture manuscrite ?
La reconnaissance de l'écriture manuscrite d'IronOcr s'appuie sur le puissant moteur Tesseract 5, qui associe un traitement d'image avancé à des algorithmes d'apprentissage automatique pour offrir des capacités de reconnaissance de l'écriture manuscrite à la pointe de l'industrie.

