.NET MAUI OCR à l'aide d'IronOCR for .NET

Chaknith Bin
Chaknith Bin
février 1, 2023
Mise à jour décembre 11, 2024
Partager:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Introduction

Microsoft a publié .NET MAUI (Multi-platform App UI), qui est un cadre pour construire des applications multiplateformes avec le .NET Framework. Il vous permet d'écrire du code qui fonctionne sur Android, iOS et Windows en utilisant la même base de code, ce qui vous permet d'économiser du temps, des ressources et des efforts. .NET MAUI est un logiciel libre. Vous pouvez obtenir le code source du projet .NET MAUI avec des exemples sur [GitHub](https://github.com/dotnet/maui" target="_blank" rel="nofollow noreferrer noopener).

Dans ce guide pratique, nous allons apprendre à créer une application de traitement OCR sur .NET MAUI en utilisant la bibliothèque IronOCR avec des exemples.

IronOCR : bibliothèque OCR .NET

IronOCR est une bibliothèque NuGet OCR pour .NET qui permet aux développeurs d'intégrer facilement la fonctionnalité de reconnaissance optique de caractères (OCR) dans leurs projets. IronOCR permet de numériser des documents PDF et de les convertir en texte/données consultables et modifiables sans perte de qualité des données. Les utilisateurs peuvent ainsi trouver facilement les informations dont ils ont besoin dans les documents PDF et apporter des modifications ou des corrections si nécessaire.

IronOCR est la version la plus avancée des binaires Tesseract disponibles pour toutes les plateformes. Il offre une vitesse, une précision accrues, ainsi qu'un DLL/API natif qui prend en charge toutes les versions de Tesseract (de Tesseract 3 à Tesseract 5) avec une installation/téléchargement facile.

La prise en charge des langues par IronOCR est étendue, avec 125 langues internationales disponibles pour les utilisateurs. La langue anglaise est installée par défaut avec l'outil/DLL. Cependant, vous pouvez facilement ajouter d'autres langues en les installant via NuGet ou en téléchargeant des DLL.

Comparaison avec Tesseract

IronOCR est spécialement conçu pour les développeurs C# et s'intègre parfaitement aux applications .NET. En revanche, Tesseract est une bibliothèque OCR générique qui exige des développeurs qu'ils écrivent leurs propres wrappers pour l'utiliser avec C#. En outre, IronOCR offre une précision et une rapidité supérieures à celles des autres bibliothèques, grâce à ses algorithmes innovants d'intelligence artificielle.

IronOCR est accompagné d'une documentation complète et d'une assistance technique, ce qui permet aux développeurs novices d'être rapidement opérationnels.

IronOCR est beaucoup plus précis que Tesseract. En effet, son taux de précision est supérieur à 99 %, alors que celui de Tesseract n'est que de l'ordre de 70,2 % à 92,9 %. Obtenez plus d'informations et de support sur la comparaison entre IronOCR et Tesseract dans la [vidéo YouTube](https://www.youtube.com/watch?v=2QTEb6x8NJ4" target="_blank" rel="nofollow noopener noreferrer).

Étapes de la création d'une application MAUI OCR

Suivez les étapes suivantes pour créer une application OCR dans le Framework .NET MAUI à l'aide d'IronOCR.

Conditions préalables

Pour créer une application OCR dans .NET MAUI, il y a quelques conditions préalables.

  1. Visual Studio 2022 (Dernière version)

  2. .NET 6 ou 7

  3. Paquets MAUI installés dans Visual Studio

  4. Un projet MAUI .NET exécuté dans Visual Studio

Installer IronOCR

La première étape consiste à installer la bibliothèque IronOCR à l'aide de la console de gestion des paquets NuGet. Ouvrez la console NuGet Packages en faisant un clic droit sur l'explorateur de solutions et en écrivant la commande suivante pour installer la bibliothèque IronOCR.

Install-Package IronOcr

Conception frontale

Nous allons concevoir l'interface de l'application dans cette section. Ouvrez le fichier MainPage.xaml.

Tutoriel OCR .NET MAUI utilisant IronOCR - Figure 1 : MainPage.xaml

MainPage.xaml

Nous désignons un bouton qui nous aidera à sélectionner l'image ou le document PDF pour l'OCR. La propriété clicked du bouton est définie pour exécuter la fonction IOCR. Nous définirons cette fonction dans la section suivante.

<Button
    x:Name="OCR"
    Text="Click to OCR"
    Clicked="IOCR"
    HorizontalOptions="Center" />
XML

Nous créons ici une boîte Image nommée OCRImage. Cette boîte à images permet d'afficher le fichier sélectionné.

<Image
    x:Name="OCRImage"
    SemanticProperties.Description="Selected Image"
    HeightRequest="300"
    HorizontalOptions="Center" />
XML

Ensuite, nous créons un contrôle Editor. Il sera utilisé pour afficher le texte extrait de l'image ou du document PDF.

<Editor
    x:Name="outputText"
    HorizontalOptions="Center"
    WidthRequest="600"
    HeightRequest="300"
    />
XML

Voici l'interface utilisateur XAML terminée.

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="IronOCR_MAUI_Test.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">
            <Button
                x:Name="OCR"
                Text="Click to OCR"
                Clicked="IOCR"
                HorizontalOptions="Center" />
            <Image
                x:Name="OCRImage"
                SemanticProperties.Description="Selected Image"
                HeightRequest="300"
                HorizontalOptions="Center" />

            <Editor
                x:Name="outputText"
                HorizontalOptions="Center"
                WidthRequest="600"
                HeightRequest="300"
                />
        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

Il est maintenant temps d'écrire le code pour la fonctionnalité OCR.

Code pour l'OCR avec IronOCR

Ouvrez le fichier de classe "MainPage.xaml.cs" et écrivez-y la fonction suivante.

Tutoriel OCR .NET MAUI utilisant IronOCR - Figure 2 : MainPage.xaml.cs

MainPage.xaml.cs

private async void IOCR(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });
    var path = images.FullPath.ToString();
    OCRImage.Source = path;

    var ocr = new IronTesseract();
    using (var input = new OcrInput())
    {
        input.AddImage(path);
        OcrResult result = ocr.Read(input);
        string text = result.Text;
        outputText.Text = text; 
    }
}
private async void IOCR(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });
    var path = images.FullPath.ToString();
    OCRImage.Source = path;

    var ocr = new IronTesseract();
    using (var input = new OcrInput())
    {
        input.AddImage(path);
        OcrResult result = ocr.Read(input);
        string text = result.Text;
        outputText.Text = text; 
    }
}
Private Async Sub IOCR(ByVal sender As Object, ByVal e As EventArgs)
	Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
		.PickerTitle = "Pick image",
		.FileTypes = FilePickerFileType.Images
	})
	Dim path = images.FullPath.ToString()
	OCRImage.Source = path

	Dim ocr = New IronTesseract()
	Using input = New OcrInput()
		input.AddImage(path)
		Dim result As OcrResult = ocr.Read(input)
		Dim text As String = result.Text
		outputText.Text = text
	End Using
End Sub
$vbLabelText   $csharpLabel

Décomposons le code ci-dessus.

Le code suivant aide à sélectionner l'image en utilisant l'objet FilePicker de C#. Le titre du FilePicker et le type de fichier FilePicker sont tous deux définis sur des valeurs, avec le chemin de l'image.

var images = await FilePicker.Default.PickAsync(new PickOptions
{
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
var images = await FilePicker.Default.PickAsync(new PickOptions
{
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
	.PickerTitle = "Pick image",
	.FileTypes = FilePickerFileType.Images
})
Dim path = images.FullPath.ToString()
$vbLabelText   $csharpLabel

Ensuite, le contrôle de boîte Image est configuré pour utiliser l'image spécifiée dans la variable path ci-dessus.

OCRImage.Source = path;
OCRImage.Source = path;
OCRImage.Source = path
$vbLabelText   $csharpLabel

Ensuite, nous commençons à utiliser IronOCR en créant une nouvelle instance de la classe IronTesseract. Nous l'utilisons pour extraire le texte de l'image sélectionnée et ensuite pour afficher le contenu dans le contrôle de l'éditeur.

var ocr = new IronTesseract();
    using (var input = new OcrInput())
    {
        input.AddImage(path);
        OcrResult result = ocr.Read(input);
        string text = result.Text;
        outputText.Text = text; 
    }
var ocr = new IronTesseract();
    using (var input = new OcrInput())
    {
        input.AddImage(path);
        OcrResult result = ocr.Read(input);
        string text = result.Text;
        outputText.Text = text; 
    }
Dim ocr = New IronTesseract()
	Using input = New OcrInput()
		input.AddImage(path)
		Dim result As OcrResult = ocr.Read(input)
		Dim text As String = result.Text
		outputText.Text = text
	End Using
$vbLabelText   $csharpLabel

Sortie

Après avoir lancé le projet, l'interface utilisateur ci-dessous s'affiche. Lorsque vous cliquez sur le bouton, vous êtes invité à sélectionner l'image/PDF à partir de n'importe quel emplacement.

Tutoriel OCR .NET MAUI avec IronOCR - Figure 3 : Sortie OCR

Sortie OCR

Après avoir sélectionné l'image, IronOCR la traite et affiche les mots reconnus dans le contrôle de l'éditeur. Vous pouvez copier le texte à partir du contrôle de l'éditeur.

Tutoriel OCR .NET MAUI utilisant IronOCR - Figure 4 : OCR d'image

Image OCR

Les résultats montrent qu'IronOCR fait un excellent travail dans le traitement d'images complexes avec des motifs, en montrant des résultats précis. IronOCR est capable de détecter le point rouge sur la lettre et de sélectionner la lettre exacte requise à l'aide de ses modèles pré-entraînés.

Exécuter le projet en mode release avec le débogage attaché peut causer des problèmes. Dans de tels cas, vous pouvez publier le projet en tant qu'application .NET MAUI non emballée, comme montré dans le lien ci-dessous, pour garantir le bon fonctionnement de l'application.)}]

Conclusion

Pour en savoir plus, consultez ce tutoriel qui donne des informations supplémentaires sur l'utilisation d'IronOCR pour lire du texte à partir d'images.

IronOCR est gratuit à des fins de développement. Vous pouvez l'acheter pour le prix très bas à partir de seulement $749. Consultez le plan tarifaire ici.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.